我试图创建一个php文件,搜索我在ubuntu中用mysql创建的数据库,但是当我运行查询时,我得到了这个错误,但我不明白为什么!!!当我打印错误时,我传递的数据是正确的,并且显示在字符串中!!!!!
我认为这是一个语法错误,但我不知道它在哪里!!!!
这是我创建字符串并执行查询的摘录:
$sql_find = ("SELECT CITY, ADRESS, CAP FROM PEOPLE WHERE ID_PERSON = $idperson AND NAME_PERSON = $name AND SURNAME = $surname ") ;
print $sql_find;
$result= mysqli_query($connect,$sql_find) or die ("Error: ". mysqli_error($connect)." with query ");
传递的数据是我在应用程序中创建的人的姓名、姓氏和id。例子:
$idperson=rm120463$name=mario$姓氏=rossi
当我打印错误时,它也会打印我创建的select,它是:
从id\u person=rm120463和姓名\u person=mario和姓氏=rossi的人员中选择城市、地址和上限
如果查询组合正确,为什么会给我错误?
谢谢,只有你能帮我!!!!!
3条答案
按热度按时间carvr3hs1#
你忘了引号:
顺便说一下,我看不到您的所有代码,但可能是sql注入的弱点。看看是否直接使用input($var=$\u post['…'])中的数据,并替换为prepared语句和bind参数。
dpiehjr42#
你错过了关于var的引述吗
但是您不应该在sql中使用php var。。您应该看看绑定参数的db驱动程序。。使用binding param可以避免sql注入的风险,并在绑定期间生成正确的值
cmssoen23#
通过绑定参数避免sql注入攻击的风险。此外,使用面向对象代码更整洁: