gpt4 book ai didi

javascript - 如何解决php和javascript中的 "notice array to string conversion in C"错误?

转载 作者:行者123 更新时间:2023-11-28 17:51:54 25 4
gpt4 key购买 nike

所以我试图将 javascript 中数据表中选定行的“id”发送到 php 页面,以便我可以从数据库中删除它。

var ids = $.map(table.rows('.selected').data(), function (item) {
return item[0] });

变量“ids”通过post方法发送

$.post("deleterow.php", { v1: ids });

但它不起作用,所以我尝试查看 post 方法的响应,它说“注意 C 语言中数组到字符串的在线转换...”该行是我正在编写删除查询的 php 页面

$id = $_POST["v1"];
$query = "DELETE FROM `package` WHERE `id` = '$id'";

当尝试使用其他值时,整个 php 页面工作正常。

最佳答案

因为你在这里发送一个数组:

$.post( "deleterow.php", { v1: ids });

so v1 包含一个元素数组。但在您的 php 代码中,您将其视为单个元素:

$id = $_POST["v1"];

因此注意数组到字符串的转换

如果您发送一个元素数组,则必须将其作为数组获取并将其视为数组。要创建正确的 SQL 字符串,您应该附加每个 ID,如下所示:

$ids = json_decode($_POST["v1"]);
$query = "DELETE FROM `package` WHERE";
$first = true;
foreach ($ids as $id) {
if ($first) {
$first = false;
} else {
$query += " OR";
}
$query += " `id` = '$id'"
}

通过这种方式,您可以循环数组并为每个数组元素附加一个 id = ID

现在,这一点很重要,这段代码很容易出现 SQL 注入(inject),这是一个非常严重的安全问题。阅读本文以获取更多信息:How can I prevent SQL injection in PHP?

关于javascript - 如何解决php和javascript中的 "notice array to string conversion in C"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45320701/

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