同时删除和插入记录 PHP
Posted
技术标签:
【中文标题】同时删除和插入记录 PHP【英文标题】:Delete and Insert record at the same time PHP 【发布时间】:2016-02-29 08:19:29 【问题描述】:您好,我计划在点击提交时同时删除和插入值,它将删除旧值并同时插入新值
这是我的代码。
<?php
if (isset($_POST['submit']))
$color1 = $_POST['color1'];
$count = count($color1);
for ($x = 0; $x <=$count; $x++)
$savecolor = $color1[$x];
$stmt = $db->prepare("DELETE FROM productcolor WHERE productinformationID = :field0");
$stmt->execute(array(':field0' => $prodID));
$stmt = $db->prepare("INSERT INTO productcolor(productinformationID,colorName) VALUES(:field0,:field00)");
$stmt->execute(array(':field0' => $prodID, ':field00' => $savecolor));
?>
它只会删除我的值,我的数据库中没有保存任何值..
请帮助我。谢谢
【问题讨论】:
只要打印一些虚拟消息,检查它正在使用哪个分支。 php.net/manual/ro/pdo.begintransaction.php$color1
的值是多少??同时显示您的表单代码!
为什么不只是update
?
使productinformationID
独一无二并使用REPLACE INTO
。
【参考方案1】:
PHP 中的 mysql
支持不允许在一个查询中使用多个 statemet,因此您无法删除一行并更新同一查询。
您可以使用INSERT... OR UPDATE
语句代替DELETE
和INSERT
来接近您想要完成的任务。
http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html
例如
INSERT INTO productcolor(productinformationID,colorName) VALUES("foo", "bar") ON DUPLICATE KEY UPDATE productinformationID=VALUES(productinformationID), colorName=VALUES(colorName)
【讨论】:
我认为他只是想要一个 UPDATE 语句:o 因为他也在他的代码中使用INSERT
,所以结合INSERT
并建议UPDATE
可以保护他的一个数据库查询。还是我错了?
"在 SQL Server 中使用 replace into 可以吗?" - 他没有使用 MySQL。
在我写答案时没有得到该信息:)【参考方案2】:
<?php
global $wpdb;
if(isset($_POST['submit']))
$checkBox =$_POST['chk1'];
$wpdb->query( "DELETE FROM wp_vandor WHERE parent_id = '".$user_id."'" );
foreach($checkBox as $checkedfv)
$wpdb->query("INSERT INTO wp_vandor (parent_id, child_id) VALUES ('".$user_id."', '".$checkedfv."')");
$crpurl = home_url('favorite-vendors');
header("Location: ".$crpurl);
?>
【讨论】:
以上是关于同时删除和插入记录 PHP的主要内容,如果未能解决你的问题,请参考以下文章