mySQL插入语法错误与引用

时间:2013-09-03 19:22:06

标签: php mysql

我在下面收到以下错误,我相信它的部分内容是我在5'10 - (178cm)变量传递的插入字符串$en['height']中的引用。什么是处理此错误的最佳方法?

错误:您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在'10 - (178cm)附近使用正确的语法,在第12行使用m_btype ='而不是说'

这是mysql插入:

m_height = '".$en['height']."',

表设置为:

varchar(30) latin1_swedish_ci

1 个答案:

答案 0 :(得分:4)

你的问题是你必须逃避"在将它们输入SQL查询之前的字符串。不这样做将允许人们通过输入引号来改变您的查询。我输入以下字符串的示例:

'; select * from users; --

可以执行您不想要的SQL。解决方案是逃避:

m_height = '".mysql_real_escape_string($en['height'])."',

或者更好的是使用更新的查询mysql的方法,例如PDO或mysqli函数。

编辑我也认为你有一个更普遍的语法错误。试试这个:

m_height = "'".mysql_real_escape_string($en['height'])."'",