我需要从php数组更新mysql表数据库的信息。
我正在寻找执行此操作的最佳方法,我想做的是使用新信息更新现有数据库表,这意味着可能会有新行,现有行的字段或行中可能会有新值已删除。
我正在考虑的方法是:
你怎么看?一些更好的方法的想法?谢谢你的支持。
您可以对新行和现有行使用INSERT ... ON DUPLICATE KEY UPDATE。INSERT
UPDATE
例:
INSERT INTO t1 (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE a=1,b=2,c=3;
您必须DELETE
使用php中的一些技巧来构建语句。
例:
<?php
$data = array(
array( 'a'=>1, 'b'=>2, 'c'=>3 ),
array( 'a'=>4, 'b'=>5, 'c'=>6 ),
array( 'a'=>7, 'b'=>8, 'c'=>9 ),
);
$condition = implode( ',', array_map( function($temp){return sprintf("('%s','%s','%s')",$temp['a'],$temp['b'],$temp['c']);},$data));
$sql = "DELETE FROM t1 WHERE (a,b,c) NOT IN (" . $condition . ");";
echo $sql; // DELETE FROM t1 WHERE (a,b,c) NOT IN (('1','2','3'),('4','5','6'),('7','8','9'));
// OR
$condition1 = implode( ',', array_map( function($temp){return sprintf("'%s'",$temp['a']);},$data));
$sql1 = "DELETE FROM t1 WHERE a NOT IN (" . $condition1 . ");";
echo $sql1; // DELETE FROM t1 WHERE a NOT IN ('1','4','7');
?>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句