gpt4 book ai didi

php - 将 MySQL JSON_OBJECT() 与参数化查询结合使用

转载 作者:行者123 更新时间:2023-11-29 10:05:54 25 4
gpt4 key购买 nike

我试图使用以下查询向 MySQL 表插入一个条目。如果我将 MySQL 参数化查询与 mysqli 一起使用,如下所示,它可以正常工作,没有任何问题。

insert into notelist(checksum,details,status,location) values('$checksum',JSON_OBJECT('filename','$filename','checksum','$checksum'),0,'$path')

但是,如果我使用 mysqli 的参数化查询,如下所示,错误“无法从字符集‘二进制’的字符串创建 JSON 值”错误将被放入调试文件中。请有人帮助解决此问题。

$stmt = $con->prepare("insert into notelist(checksum,details,status,location) values(?,?,?,?)");
$stmt->bind_param("sbis", $checksum, $a = "JSON_OBJECT('filename','$filename','checksum','$checksum')", $b = 0, $path);
$result = $stmt->execute();
if (false === $result) {
file_put_contents("db.txt", "connecterror" . $stmt->error);
}

最佳答案

绑定(bind)时您只想绑定(bind)值,而不是 SQL 函数、列或表。绑定(bind)引用该值并转义所有其他引号。您的查询应该是:

insert into notelist(checksum,details,status,location) values(?,JSON_OBJECT('filename',?,'checksum',?),?,?)

然后您应该绑定(bind)要绑定(bind)的 5 个值。

$stmt->bind_param("sssis", $checksum, $filename, $checksum, 0, $path);

按照当前编写的方式,您的查询将包含 JSON_OBJECT 作为字符串,其中包含:

'JSON_OBJECT(\'filename\',\'filename_VALUE\',\'checksum\',\'$checksum_VALUE\')'

关于php - 将 MySQL JSON_OBJECT() 与参数化查询结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51920646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com