php - MYSQL 使用准备好的语句替换列值,字符串版本

标签 php mysql replace

我有一个场景,我正在考虑根据现有列中的旧值用新值更新类别列中的值。类别在单独的表中进行更改,并且需要在此表中进行更新以反射(reflect)更改。

我使用准备好的语句和两个数组来审查要替换的不同值:

$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,你是对的:语法没有任何问题。希望我能改造你。

不过,希望以上内容对其他人有用。我花了相当多的时间并且没有在线引用来解决这个问题。希望有用。

最佳答案

使用这个:

$strg="UPDATE table_name SET CATEGORY = REPLACE (CATEGORY,$oldCategory[$i],$category[$i])";

代替这个:

$strg="UPDATE table_name SET CATEGORY = REPLACE (CATEGORY, ?, ?)";

关于php - MYSQL 使用准备好的语句替换列值,字符串版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19461099/

相关文章:

Mysql:创建一个仅显示一对多关系子集的 View

mysql - 如何将存储过程 IN 参数初始化为默认值?

string - 使用 PERL 脚本精确匹配和替换文件

Javascript 替换 href 最后一个斜杠/之后的某些字符

php - 如何从PDF文档中提取文本?

php - 从 php 脚本调用的 INSERT INTO 失败

php - 将 MySQL 文本字段编码为 UTF-8 文本文件 - 特殊字符问题

mysql - Zend 框架 : Select query

r - 在 R 中构建逻辑的计算

php - php 代码更新错误