Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Php使用transaction和commit一次选择并处理一条记录_Php_Mysql - Fatal编程技术网

Mysql Php使用transaction和commit一次选择并处理一条记录

Mysql Php使用transaction和commit一次选择并处理一条记录,php,mysql,Php,Mysql,从一个表中选择一系列ID然后放置它们的最佳方法是什么 通过事务循环一次更新一条记录 $result = mysql_query('SELECT p_code FROM replenishment '); $ids = array(); while ($p_code = mysql_fetch_row($result)) { $ids[] = $p_code[0]; foreach($ids as $p_code) { mysql_query('SELECT @A

从一个表中选择一系列ID然后放置它们的最佳方法是什么 通过事务循环一次更新一条记录

$result = mysql_query('SELECT p_code FROM replenishment ');
$ids = array();

while ($p_code = mysql_fetch_row($result)) {
    $ids[] = $p_code[0];
    foreach($ids as $p_code) {
        mysql_query('SELECT @A:=replenishment.p_code,@B:=replenishment.model
                        from replenishment
                        left join replenishment1 on replenishment1.p_code = replenishment.p_code
                        where replenishment.branch=10
                        and replenishment.p_code=$p_code
                        and replenishment.stock < min

                        and replenishment1.stock > 0

                        group by replenishment.p_code');
        mysql_query('UPDATE replenishment1
                        SET stock = (stock - @B), B5=(b5+@B)  WHERE @A = replenishment1.p_code
                        and replenishment1.stock >= @B');
        $row = mysql_fetch_assoc();
    }
}
$result=mysql\u查询('从补货中选择p\u代码');
$ids=array();
while($p\u code=mysql\u fetch\u row($result)){
$ids[]=$p_代码[0];
foreach($ID作为$p_代码){
mysql\u query('选择@A:=补货.p\u代码,@B:=补货.model
来自补给
左联合补货1上的补货1.p_代码=补货.p_代码
其中,补货分支=10
和补货。p_代码=$p_代码
和补货。库存0
按补给分组。p_代码“);
mysql\u查询('更新补充1
设置库存=(库存-@B),B5=(B5+@B),其中@A=补充1.p_代码
和补充1.库存>=@B');
$row=mysql_fetch_assoc();
}
}

开始使用PDO或MySQLi。

通过它,您可以管理事务,并确保数据安全地进入数据库

<?php
try {
  $dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2', 
      array(PDO::ATTR_PERSISTENT => true));
} catch (Exception $e) {
  die("Unable to connect: " . $e->getMessage());
}

try {  
  $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  $dbh->beginTransaction();

/* You can put your foreach loop over here or you can also do the entire process for single update. It's your choice */

  $dbh->commit();

} catch (Exception $e) {
  $dbh->rollBack();
  echo "Failed: " . $e->getMessage();
}
?>

。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果选择PDO,。则不需要setAttribute函数,也不需要beginTransaction方法或提交函数。