php中2条sql能写在一个变量里面执行吗
我要执行这2条语句select*fromAinsertintoA(name)values('test')我想把这2句sql在一个变量里去执行实现成$sql=“select...
我要执行这2条语句
select * from A
insert into A(name) values('test')
我想把这2句sql在一个变量里去执行实现成
$sql=“select * from A;insert into A(name) values('test')”;
mysqli_query($sql);
但是会报这样的错误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 'select * from A;insert into A(name) values('test')‘ at line 1
请问有什么方法可以用这样的方法来执行吗?
多谢! 展开
select * from A
insert into A(name) values('test')
我想把这2句sql在一个变量里去执行实现成
$sql=“select * from A;insert into A(name) values('test')”;
mysqli_query($sql);
但是会报这样的错误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 'select * from A;insert into A(name) values('test')‘ at line 1
请问有什么方法可以用这样的方法来执行吗?
多谢! 展开
2个回答
展开全部
好吧,楼主要是非得这么做的话其实还是给自己添麻烦有点 数据库很傻的,它不会自动识别的,只认识标准的sql语句,你上来两句话它肯定不认识了
这样非要一个变量的话那就这么办 在运行sql时候得改变一下
$sql_arr = explode(":",$sql); //通过切割函数将你的sql变量切割成数组
foreach($sql_arr as $val){
$result[]= mysqli_query($val); //我遍历数组后 每项就是一个sql语句 我分别运行 将结果放在一个数组里面
}
$result = implode(",",$result); //将上面的数组在改变成用逗号连接的字符串
这样非要一个变量的话那就这么办 在运行sql时候得改变一下
$sql_arr = explode(":",$sql); //通过切割函数将你的sql变量切割成数组
foreach($sql_arr as $val){
$result[]= mysqli_query($val); //我遍历数组后 每项就是一个sql语句 我分别运行 将结果放在一个数组里面
}
$result = implode(",",$result); //将上面的数组在改变成用逗号连接的字符串
追问
能不能在$sql这个变量里做些修改来 执行
通过对它进行修改 导致执行的时候可以执行 insert就行
追答
恩,那你这里的查询想用它做些什么呢? 要是就是想执行添加也简单 在那个循环里面弄一个判断 然后是这个数组的首个的话 直接 continue了
我记得貌似有个函数可以一次执行两个sql语句 你也可以参考下 刚刚忘了说mysqli_multi_query();
这个函数 意思可以理解成运行 多条sql语句 但是你要注意 一旦第一个报错 那第二个也容易出事了 个人感觉还是把它分开弄好一点 这样两条语句那个错了都无所谓 谁都影响不到谁
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询