为什么跟随mySQL查询失败?

doc*_*lic 0 php mysql

我不知道为什么以下mySQL查询不断给我以下错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL     server version for the right syntax to use near 'http://some.url' at line 2
Run Code Online (Sandbox Code Playgroud)

SQL查询本身是这样的:

DB_ExecuteQuery("UPDATE driver 
                 SET windowsPhoneID = $uri
                 WHERE userID = $userID");
Run Code Online (Sandbox Code Playgroud)

$ userID只是表的主键,只是一个VARCHAR.我不知道为什么$ uri部分无效.WindowsPhoneID应该存储为TEXT,因此没有任何不匹配的类型或类似的东西.

有什么指针吗?

alf*_*sin 6

您应该在参数周围添加引号:

DB_ExecuteQuery("UPDATE driver 
                 SET windowsPhoneID = '$uri'
                 WHERE userID = '$userID'");
Run Code Online (Sandbox Code Playgroud)

备注:
和Mike温和建议一样,请使用PDO或MySQLi来防止sql注入.