Variabla v SQL stavku
5 naročnikov
5 naročnikov
Zdravo,
Imam sledeč sql stavek:
$sql = "SELECT reference,dopnumber FROM dopdocuments where reference=$referenca" ;
$res = mysqlquery($sql);
$fetched = mysqlfetcharray($res,MYSQLNUM))
in dobim naslednjo napako:
Warning: mysqlfetcharray(): supplied argument is not a valid MySQL result resource in /home/fibransi/public_html/frontend/dop.php on line 68
Po moje narobe vklopim variablo $referenca v sql stavek. Kako pa bi bilo pravilno?
Hvala
Tomaž
5 odgovorov
Probaj echojat tole da vidis kaj sploh dobis, in ce $referenca obstaja in ali je pravilni column 'reference'.
echo "SELECT reference,dopnumber FROM dopdocuments where reference=$referenca" ;
Drugace pa priporocam da das nekaj v smislu:
"SELECT reference,dopnumber FROM dopdocuments where reference='".escape($referenca).'";
in se escape funkcija, da ti nebodo injectali:
function escape($string) {
if (getmagicquotesgpc())
$string = stripslashes($string);
return mysqlrealescapestring($string);
}
verjetno je $referenca prazna ali pa ima kakšne presledke in podobno
pred queryem naredi par preveerjanj.. predvsem
$referenca = str_replace("'", "''", $referenca);
potem pa v queryu popravi
$sql = "SELECT reference,dop_number FROM dop_documents where reference='".$referenca."'" ;
Preveri kaj imaš v referenci... V tvojem stavku se mora referenca popolnoma ujemat...
oz mora bit popolnoma identična oni v bazi...
vardump($referenca) ali
errorlog("Kaj je v referenci".print_r($referenca, 1)); in omogočiš loge.
Probaj se izogibati navadni uporabi mysql_query če je mogoče in uporabi PDO
http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/