mysql 执行多条语句_mysql怎么一次执行多条SQL语句?

这篇博客探讨了在PHP中如何执行多条MySQL语句的问题。博主遇到在PHP中无法通过分号隔开的方式执行多条SQL,发现是由于PHP的mysql_query函数不支持该操作。讨论中提到了使用存储过程、设置多个变量、循环执行单条SQL以及通过调整MySQL连接参数allowMultiQueries来允许执行多条语句的解决方案。最后,有人分享了一个亲测有效的连接字符串示例,解决了这个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

".$rs['name'];

}

?>

上面返回空记录。

单独将$sql里面的内容放在phpmyadmin中执行正确,所以SQL语句应该是正确,估计连接方式那城出了问题

请问如何写才能显示出来,谢谢!

回复讨论(解决方案)

我的本意是用php读mysql时,能像asp读mssql一样实现这样的写法:

Declare @top2 int

select @top2=min(mid) from (select top 1 mid from [musicbox] where rid='87503' order by mid desc) as db2

SELECT top 20 mid,rid,mname,mauthor,madddate FROM [musicbox] as a where rid='87503' and a.mid

请问如何用php来实现?谢谢!

按“;”分割成多句,依次 mysql_query($sql)

这是 php 防范 SQL 攻击的措施,不要试图改变他。

相信你也不希望你的网站被攻击

可以设置多个变量

或者使用存储过程~

mysql_query不支持同时运行多条SQL。你要以;号拆开分别执行

mysql_query("SELECT @a:=id FROM csdn order by id asc limit 30,1");

mysql_query("SELECT @b:=id FROM csdn order by id asc limit 60,1");

mysql_query("SELECT * from csdn where id>@a and id

想办法写成一次执行的查询 例如UNION之类的

mysql_query不支持同时运行多条SQL。

你只能一次一次的去执行。或者就写一个sql语句。

LZ想要的实现不了。

如果要同时执行这些sql的话,不能用;隔开一起执行,只能一个一个的执行,或者将这些sql放入一个数组,然后循环执行,建议加上事务处理

存储过程执行。

喽主想要实现也不是不可能,不过不是那样的形式,你可以试试用for()循环呐,这样不就依次执行了嘛

5楼方式是最接近思路的,但是效率很差。

从300万数据中的50万条处进行分页读取,

用php分别执行2次sql语句,in(**ids**)方法和id>**Maxid**,需要200-300毫秒,

按5楼方式执行3次SQL语句,需要400~600毫秒。

还是放弃这种思路了。感谢诸位帮忙,谢谢!

&allowMultiQueries=true

在MySQL中执行多个语句,需要把allowMultiQueries参数置为true,而且,只有MySQL Connector/J 3.1.1以上版本才支持。

建立连接时设置一下就可以了,如:jdbc:mysql://127.0.0.1/sample?user=root&password=&allowMultiQueries=true

亲测完美解决

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值