我有一个场景,我希望根据现有列中的旧值,使用新值更新类别列中的值。这些类别在单独的表中进行了更改,需要在此表中进行更新以反映更改。
我正在使用预准备语句和两个数组来审核要替换的不同值:
$category = array($_POST['cat1'],$_POST['cat2'],$_POST['cat3'],$_POST['cat4']);
$oldCategory = array($_POST['catOld1'],$_POST['catOld2'],$_POST['catOld3'],$_POST['catOld4']);
for ($i=0;$i<4;$i++) {
$strg="UPDATE table_name SET CATEGORY = REPLACE (CATEGORY, ?, ?)";
$sql = $mysqli->prepare($strg) or die($db->error());
$sql->bind_param('ss', $oldCategory[$i], $category[$i]);
$sql->execute();
}
我认为这是我的REPLACE语句的语法,关于准备好的语句导致只是一个挂起,但无法在线找到正确格式的引用。任何协助赞赏。感谢。
更新:好的,其中一件奇怪的事情:现在正在运作。为什么?我不确定。墨菲定律总是让我们同名。 Wrikken,你是对的:语法没有错。希望我能帮你改造。
但是,希望以上内容对其他人有用。我花了很多时间没有在线参考来解决这个问题。希望有用。
答案 0 :(得分:0)
使用它:
$strg="UPDATE table_name SET CATEGORY = REPLACE (CATEGORY,$oldCategory[$i],$category[$i])";
代替:
$strg="UPDATE table_name SET CATEGORY = REPLACE (CATEGORY, ?, ?)";