为什么下面的mySQL查询失败


Why is this following mySQL query failing?

我不知道为什么下面的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

SQL 查询本身是这样的:

DB_ExecuteQuery("UPDATE driver 
                 SET windowsPhoneID = $uri
                 WHERE userID = $userID");

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

有什么指示吗?

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

DB_ExecuteQuery("UPDATE driver 
                 SET windowsPhoneID = '$uri'
                 WHERE userID = '$userID'");

备注:
就像Mike温和地建议的那样,请使用PDO或MySQLi来防止SQL注入。