Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数组元素插入数据库表时出错_Php_Mysql_Arrays - Fatal编程技术网

Php 将数组元素插入数据库表时出错

Php 将数组元素插入数据库表时出错,php,mysql,arrays,Php,Mysql,Arrays,我有一个非常简单的错误,但我不明白为什么会发生。我有一个数组: Array ( [1] => Array ( [A] => Joakim [B] => Dzafic [C] => joke@gmail.com ) [2] => Array ( [A] => Jevren [B]

我有一个非常简单的错误,但我不明白为什么会发生。我有一个数组:

Array
(
    [1] => Array
        (
            [A] => Joakim
            [B] => Dzafic
            [C] => joke@gmail.com
        )

    [2] => Array
        (
            [A] => Jevren
            [B] => Jevrej
            [C] => zidovi@gmail.com
        )

)
我尝试将其插入我的
MySQL
数据库表,如下所示:

 foreach($sheetData as $rec){
    $result=$mysqli->query("INSERT INTO `test`(`name`,`surname`,`email`) VALUES
                (
                ".$rec['A'].",
                ".$rec['B'].",
                ".$rec['C']."
                );");
                if(!$result){
                    var_dump($result);
                    die("Something's wrong with query!");
                }else{
                    echo 'Inserted!';
                }

            }
但是它说:
查询有问题以及当我执行
var\u dump($result)时上面写着:
bool(false)

请帮助我调试这部分代码,因为我一直都在使用它。

您忘记添加单引号
值变量应该用
括起来,如果它包含字符串:

$result=$mysqli->query("INSERT INTO `test`(`name`,`surname`,`email`) VALUES
                (
                '".$rec['A']."',
                '".$rec['B']."',
                '".$rec['C']."'
                )");

您应该使用
$mysqli->error
检查查询错误

按如下方式编写代码:-

foreach($sheetData as $rec){
    $result=$mysqli->query("INSERT INTO `test`(`name`,`surname`,`email`) VALUES
                (
                '{$rec['A']}',
                '{$rec['B']}',
                '{$rec['C']}',
                )");  // typo error here
                if(!$result){
                    printf("Errormessage: %s\n", $mysqli->error); // check error
                    var_dump($result);
                    die("Something's wrong with query!");
                }else{
                    echo 'Inserted!';
                }

}

希望它能帮助你:)

当你遇到这样的问题时,给你一点提示:var\u dump($my\u query)

然后您可以看到语法错误在哪里,或者哪里出了问题。:-)


不要忘记转义值字符串。

foreach($rec为sheetData){
更改为
foreach($key为sheetData=>$rec){
您应该使用准备好的语句。。