Variabla v SQL stavku
 
TOMAZ9X 4. jul 2013 13:07:13 Pridružen od:
30. nov 2010
22 objav
3 5 0
#1

Zdravo,



Imam sledeč sql stavek:

$sql = "SELECT reference,dopnumber FROM dopdocuments where reference=$referenca" ;

$res = mysqlquery($sql);

$fetched = mysql
fetcharray($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ž


všeč(0) ni všeč(1) spam(0)
 
gjerek 4. jul 2013 13:11:04 Pridružen od:
29. feb 2012
24 objav
13 4 1
#2

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 mysql
realescapestring($string);

}


všeč(1) ni všeč(0) spam(0)
 
TOMAZ9X 4. jul 2013 13:30:50 Pridružen od:
30. nov 2010
22 objav
3 5 0
#3

Super, hvala!

Tole pa poskusim!

lp


všeč(0) ni všeč(0) spam(0)
 
kelvan 4. jul 2013 18:02:51 Pridružen od:
19. okt 2007
891 objav
658 122 26
#4

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."'" ;
všeč(0) ni všeč(0) spam(0)
 
dravasoft.com 15. jul 2013 17:32:19 Pridružen od:
10. jul 2013
46 objav
24 42 23
#5

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

error
log("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/


všeč(0) ni všeč(0) spam(0)
 
murichej 16. jul 2013 21:34:01 Pridružen od:
13. jul 2012
43 objav
16 4 4
#6

ni potrebno komplicirat. ne rabiš delat z PDO, ne bo neke bistvene razlike.


všeč(0) ni všeč(1) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se