phpmyadmin mysql 语法错误 - 多位置条件


phpmyadmin mysql syntax error - multi where conditions

我需要查询语法方面的帮助。我正在使用phpmyadmin 4和mysql(不确定版本,但怀疑它是5.6。我的数据库有一个名为 places 的表,其中包含列id, city, state, sightings and date 。我的网站通过$_POST["city"]$_POST["state"]从用户那里获取输入。我想在城市和州的表条目匹配的地方将目击次数增加 1。

使用phpmyadmin的SQL查询生成器,我使用地名而不是变量测试了可能的查询结构。以下查询成功:

UPDATE places SET sightings = sightings +1 WHERE city =  "Denver" AND state =  "Colorado"

然后我点击了"创建PHP代码",它产生了以下内容:

"UPDATE places SET sightings=sightings+1 WHERE city = '"Denver'" AND state = '"Colorado'"";

我插入了这段代码,用地名代替了从 $_POST["city"]$_POST["state"] 声明的变量......

$result = cs50::query("UPDATE places SET sightings=sightings+1 WHERE city = '"{$city}'" AND state = '"{$state}'"");

并收到错误消息:

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 ''Denver', 'Colorado')'

我已经修改了这行代码几个小时,无法让它工作。它在phpmyadmin中工作的事实意味着它是可行的,我只是编码错误。

函数查询是在我正在学习的课程 CS50 提供的自定义库中定义的。我想知道该功能是否有一些限制(如果有兴趣可以发布代码),或者我只是使用了错误的语法???

欢迎任何帮助,如果我的问题令人困惑,请道歉,这对我来说相对较新。

你试过吗:

"UPDATE places SET sightings=sightings+1 WHERE city = 'Denver' AND state = 'Colorado'";

我一直发现单引号比双引号更正确,即使它们是转义的。