使用php在二维数组中插入查询

fbcarpbf  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(342)

我在二维数组中处理这个简单的查询,我的问题是它不工作,错误是 Array to string conversion . 我尝试使用内爆,但没有太多的工作。希望你能帮助我。

Array( 
    [0] => Array ( 
        [0] => 04:56:27am 
        [1] => http://www.industrialknive.com/# 
        [2] => 200 
        [3] => 0 
    ) 
    [1] => Array ( 
        [0] => 04:56:28am 
        [1] => http://www.industrialknive.com/# 
        [2] => 200 
        [3] => 0 
    ) 
    [2] => Array ( 
        [0] => 04:56:30am 
        [1] => mailto:support@industrialknive.com 
        [2] => 301 
        [3] => 1 
    ) 
)

代码:

$last_id = $conn->insert_id;

for($i=0; $i < count($arrList); $i++){

    for($ii=0; $ii < count($arrList[$i]); $ii++){

        $sql = "INSERT INTO links (website, scanned_at, site_url, url_code, is_external ) VALUES ('$last_id', '$arrList[$i][$ii]', '$arrList[$i][$ii]', '$arrList[$i][$ii]', '$arrList[$i][$ii]')";

        if ($conn->query($sql) === FALSE) {
            echo "Error: " . $sql . "<br>" . $conn->error;
        }

    }   

}
1zmg4dgp

1zmg4dgp1#

好吧,那是件事。有两点:1)php有 foreach 构造这样你就不需要使用老式的 for 循环。2) 通过使用字符串连接来构建查询,您就可以接受sql注入。3) 对每个数组的每个元素运行一次查询。
我已经有一段时间没有和mysqli合作了,但类似的东西应该可以:

<?php
$last_id = $conn->insert_id;
$query = "INSERT INTO links (website, scanned_at, site_url, url_code, is_external ) VALUES (?, ?, ?, ?, ?)";
if ($stmt = $conn->prepare($query)) {
    foreach ($arrList as $arr) {
        $stmt->bind_param("isssi", $last_id, $arr[0], $arr[1], $arr[2], $arr[3]);
        if (!$stmt->execute()) {
            echo "Error executing: " . $sql . "<br>" . $stmt->error;
        }
    }
} else {
    echo "Error preparing: " . $sql . "<br>" . $conn->error;
}

相关问题