Osaako joku sanoa mikä vikana alla olevassa kyselyssä:
$kysely = mysql_query("SELECT * FROM mopot WHERE Merkki = '$_POST['merkki']'");
tuohon riviin siis viittaa virheilmoitus, olen koittanut tuota muuttaa vaikka miten mutta aina sama juttu - ei toimi.
mysql-kysely
6
423
Vastaukset
- eikunvaan
Helpottais jos tietäisi minkä virheilmoituksen tulostaa?
Oletko kokeillut näin:
$kysely = mysql_query("SELECT * FROM mopot WHERE Merkki = ' ".$_POST['merkki']." ' ");
Eli lainausmerkit ja merkkijonoliitos tuohon $_post:in ympärille?- mutta....
sain toimimaan, niin että enää valittaa viimeistä riviä koodissa:
Parse error: syntax error, unexpected $end in... on line 40
ja tuolla ei ole kuin .... - eikunvaan
mutta.... kirjoitti:
sain toimimaan, niin että enää valittaa viimeistä riviä koodissa:
Parse error: syntax error, unexpected $end in... on line 40
ja tuolla ei ole kuin ....Jostain on sulta unohtunut sulkea hakasulku }
- Vaan näin
Jos jostain syystä haluat kerjätä ongelmia käyttämällä antiikkisia mysql-funktioita niin muista filtteröidä kaikki käyttäjiltä saamasi merkkijonot ensin ei-sallittujen merkkien varalta ja sen jälkeen eskapettaa ne merkkijonot käyttäen funktiota mysql_real_escape_string(). Myös magic_quotesin päälläolo pitää tarkastaa, jos tuotantoympäristö ei ole tarkasti tiedossa, ja tarvittaessa ajaa kaikki käyttäjien syötteet stripslashes()-funktion lävitse. Em. vaiheet ovat pakollisia jos olet skriptiäsi laittamassa julkisesti esille, eikä yhtäkään niistä voi jättää välistä.
Vanhentuneiden mysql-funktioiden sijasta on parempi kuitenkin käyttää PDO:ta:
// Filtteröi käyttäjän syöte
$merkki = preg_replace('/[^a-z]/', '', $_POST['merkki']);
// Luo tietokantayhteys
try {
$dbh = new PDO('localhost', 'tunnus', 'salasana');
}
catch (PDOException $e) {
die($e->getMessage();
}
// Suorita kysely
$stmt = $dbh->prepare('SELECT * FROM mopot WHERE Merkki = ?');
$stmt->execute(array($merkki));
// Sijoita mopot taulukkoon
$mopot = $stmt->fetchAll();- Vaan näin
// Luo tietokantayhteys
try {
$dbh = new PDO('mysql:localhost;dbname=tietokanta', 'tunnus', 'salasana');
}
catch (PDOException $e) {
die($e->getMessage());
} - fjjfa
Toki PDO:n functioita kannattaa käyttää tai sitten MYSQLI:n mikäli tietää että vain MySQL tullaan käyttämään, MYSQLI on hieman monipuolisempa kuin PDO.
Tuossa sinun esimerkissäsi ihmetyttää
// Filtteröi käyttäjän syöte
$merkki = preg_replace('/[^a-z]/', '', $_POST['merkki']);
Mitä tuolla saavutetaan?
Aika outoa olisi jos tietokannassa merkki muutettaisiin noin.
Ja tuota sinun esimerkkiäsi muuttaisin niin, että jos kysely epäonnistuu niin se antaisi poikkeuksen ja se siepattaisiin. Näin virheenkäsittely on helppoa.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 805029
Riikan kukkaronnyöri on umpisolmussa
Kulutus ei lähde liikkeelle, koska kansalaiset eivät usko, että: – työpaikka säilyy – tulot eivät romahda – talous ei h734668Jos vedetään mutkat suoraksi?
Niin kumpaan ryhmään kuulut? A) Niihin, jotka menevät edellä ja tekevät? Vai B) Niihin, jotka kulkevat perässä ja ar1112997Tanskan malli perustuu korkeaan ansioturvaan
Ja vahvoihin työllisyys- ja kotoutumispalveluihin. Suomessa Riikka on leikannut juuri näitä: palkkatukea, työttömyysturv832917Epäily: Räppäri yritti tappaa vauvansa.
https://www.mtvuutiset.fi/artikkeli/epaily-mies-yritti-tappaa-vauvansa/9300728 Tämä on erittäin järkyttävä teko täysin p232384Vain vasemmistolaiset ovat aitoja suomalaisia
Esimerkiksi persut ovat ulkomaalaisen pääomasijoittajan edunvalvojia, eivät auta köyhiä suomalaisia.592025Anteeksipyyntöni
Jätän tähän anteeksipyyntöni sinulle, koska en voi sanoa sitä missään muuallakaan. Pyydän anteeksi, jos purkamani tuska201760- 321523
Sydämeni valtiaalle
En täältä aio asioita kysellä. Haluan tuoda tiedoksesi, että pohjimmiltani en ihmisiä tahdo satuttaa ja ajattelen muiden1131415- 1851318