首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP MYSQL批量更新

PHP MYSQL批量更新
EN

Stack Overflow用户
提问于 2011-09-16 06:30:17
回答 4查看 1.9K关注 0票数 1

谁能告诉我为什么我不能执行这个简单的脚本。如果我将这条语句复制到MySQLPHPAdmin中,得到的错误是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 '1update page SET RegionId = 1 WHERE (RegionId = -1 or RegionId = -3) and Descri' at line 1,它运行得很好。请帮帮忙?提前谢谢。

代码语言:javascript
复制
$sql = "update page SET RegionId = 2  WHERE (RegionId = -1 or RegionId = -3) and Description like '%Saskatoon%' LIMIT 1";
$sql = $sql . "update page SET RegionId = 1  WHERE (RegionId = -1 or RegionId = -3) and Description like '%Regina%' LIMIT 1";

echo $sql;

mysql_query($sql) or die( mysql_error());
EN

回答 4

Stack Overflow用户

发布于 2011-09-16 06:36:39

正在删除查询中的分号,限制%1与第二个更新查询的开头冲突。

在PHP.net mysql_query手册页面中: mysql_query()将唯一的查询(不支持多个查询)发送到与指定link_identifier关联的服务器上当前活动的数据库。

您需要使用2次对mysql_query的调用才能获得所需的结果。

票数 6
EN

Stack Overflow用户

发布于 2011-09-16 06:35:11

您将连接这两个$sql字符串,因此最终的$sql字符串将包含如下所示的部分:

代码语言:javascript
复制
LIMIT 1update page SET

这是无效的SQL。此外,mysql_query不支持多个查询(感谢zerkms),因此您必须分别执行每个查询。

代码语言:javascript
复制
$sql = "UPDATE page SET RegionId = 2 WHERE (RegionId = -1 OR RegionId = -3) AND Description LIKE '%Saskatoon%' LIMIT 1"
mysql_query($sql) or die( mysql_error());
$sql = "UPDATE page SET RegionId = 1 WHERE (RegionId = -1 OR RegionId = -3) AND Description LIKE '%Regina%' LIMIT 1";
mysql_query($sql) or die( mysql_error());
票数 3
EN

Stack Overflow用户

发布于 2011-09-16 06:34:47

如果1update page set …不是一个拼写错误,那么这就是错误的原因。试着找出它们来自哪里。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7438196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档