很多站长朋友们都不太清楚php多次调用sql,今天小编就来给大家整理php多次调用sql,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php的pdo方法怎么调用存储过程中要执行多个sql语句的情况 2、 如何在php中执行多条sql语句 3、 PHP环境下如何执行多个sql指令 4、 php操作sqlite sql语句执行两次的问题 5、 php批量执行sql语句怎么写? 6、 php如何避免在循环中使用sql语句 php的pdo方法怎么调用存储过程中要执行多个sql语句的情况当然可以。把存储过程写清楚,把你需要做的业务在里面写好,然后直接调用执行就行了。
如何在php中执行多条sql语句这里没有很官方的解释,我个人认为mysql_query 不能批量执行SQL语句的原因最主要的一个就是Mysql_query不能判断你的批量语句里面是否包含错误.为了最大的保证程序的顺利执行,所以,干脆罢工了.
解决的办法,有很多种.这里仅列出我的心得之一(利用数组用Mysql_query批量执行SQL语句)
$query = ‘delete from ecs_goods_attr where attr_id=138 and goods_id=442;Insert into ecs_goods_attr (goods_attr_id,goods_id,attr_id,attr_value,attr_price)values(Null,442,138,”欧版 白色”,0);update ecs_goods set goods_number=10,shop_price=955 where goods_id=442;’
$query 是我需要执行的SQL语句,显然这里 mysql_query($query); 是无法得到我们想要的结果的.这里我们采用一个数组.用explode 函数,将$query语句按照”;”炸开.这个说的比较形象.呵呵
$query = ‘delete from ecs_goods_attr where attr_id=138 and goods_id=442;Insert into ecs_goods_attr (goods_attr_id,goods_id,attr_id,attr_value,attr_price)values(Null,442,138,”欧版 白色”,0);update ecs_goods set goods_number=10,shop_price=955 where goods_id=442;’
$query_e = explode(‘;’,’$query’);
foreach ($query_e as $k =>$v)
{
mysql_query($query_e[$k]);
}
这样 $query语句就被批量的执行了.呵呵
PHP环境下如何执行多个sql指令1、delete frome 书写问题
2、$id如果是另一个表的id,那么也要像上面的$yd631_id一样取出赋值
3、碰到问题的调试方法:比如这个问题,表面上看不出哪出了错,但后台语句肯定是因为某些错误没有执行,既然是因为错误没执行,肯定有出错原因的了,那么我们可以把执行mysql_query后出错的信息显示出来,看看出错的真实原因是什么,这样有针对性地排错比自个摸索会快很多
php操作sqlite sql语句执行两次的问题我觉得,你这个方法对插入并不适用啊。插入返回的没有结果集,只有成功与失败。那你执行之后,还去fetchArray() 。这个就不好了吧。插入的时候,不需要去取这个啊。你应该要判断一下传进来的SQL。如果是 SELECT 开头的,则执行这句。如果是非SELECT ,比如 INSERT UPDATE DELETE 那么就不需要去执行那句。而是直接返回 $result 就行了。你的执行两句,有可能就是这个不需要执行的地方引起的。你自己加个判断,处理一下。看看是否还会插入两条记录。
php批量执行sql语句怎么写?php中利用数组用Mysql_query批量执行SQL语句。
参考示例如下:
思路:这里采用一个数组.用explode 函数,将$query语句按照”;”炸开,然后循环执行即可:
$query = 'delete from ecs_goods_attr where attr_id=11 and goods_id=22;
Insert into ecs_goods_attr (goods_attr_id,goods_id,attr_id,attr_value,attr_price)values(Null,33,138,"胆略",0);
update ecs_goods set goods_number=10,shop_price=55 where goods_id=33;'
$query_e = explode(';','$query');
foreach ($query_e as $k =>$v)
{
mysql_query($query_e[$k]);
}
这样 $query语句就被批量的执行了。
php如何避免在循环中使用sql语句1、循环内拼接sql语句,循环外执行
例如:
//假设这里的$users是一个很大的数组,我们要循环取出其中的值foreach($users as $user){//这部分的sql是我从项目中随便摘抄出来的。主要就是实现拼接sql语句$sql .= " ('{$order_sn}', '{$this->user_id}', '{$deliver_fee}', 0, "
. " '', '', '', "
. " '{$add_time}','{$order_status}', '{$order_amount}', '{$remark}', "
. " '{$pickup_code}', '{$self_pickup}', '{$collect_order_sn}', '{$key}', {$reservation_time}),";
}
//循环中拼接好sql之后,我们在循环外执行$sql = substr($sql, 0, -1);
DB::statement($sql);1234567891011
2、where条件换为where in()
比如我们的where()条件中要使用大规模的数组,那么在语句应该是:
foreach($arr as $v){
DB::table('')->where('id',$v->id);
}123
此时我们可以转变一下:
//先取出条件数组$arr,在直接执行whereIn即可DB::table('')->whereIn('id',$arr);12
注意:如果数据量很大,比如几十万条数据,那么whereIn也会成为代码的瓶颈,这个函数适用于数据量不是很大的情况。
关于php多次调用sql的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php多次调用sql php调用mysql存储过程的详细内容...