Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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
在mysql数据库中插入php数组-语法正确,未插入值_Php_Mysql_Insert - Fatal编程技术网

在mysql数据库中插入php数组-语法正确,未插入值

在mysql数据库中插入php数组-语法正确,未插入值,php,mysql,insert,Php,Mysql,Insert,我已经写了这段代码,应该在我的数据库中插入一些事件数据,但它没有在数据库中插入任何东西,你能告诉我为什么吗 try { $pdo = new PDO("mysql:host={$dbhost};dbname={$dbname}", $dbuser, $dbpass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch( PDOException $excepiton ) {

我已经写了这段代码,应该在我的数据库中插入一些事件数据,但它没有在数据库中插入任何东西,你能告诉我为什么吗

try {
    $pdo = new PDO("mysql:host={$dbhost};dbname={$dbname}", $dbuser, $dbpass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

}
catch( PDOException $excepiton ) {
    echo "Connection error :" . $excepiton->getMessage();
}




try{
    $sql = "INSERT INTO events_DB (event_id, event_end_time, event_location, event_name) VALUES (:event_id, :event_end_time, :event_location, :event_name) ON DUPLICATE KEY UPDATE event_id = :event_id, event_end_time = :event_end_time, event_location = :event_location, event_name = :event_name";

    $stm = $db->prepare($sql);
    $stm->execute(array(":event_id" => $event[id], ":event_end_time" => $event[end_time], ":event_location" => $event[location], ":event_name" => $event[name]));

}
catch ( PDOException $exception )
{
//  decomentati sa vedeti erorile
  echo "PDO error :" . $exception->getMessage();
}

谢谢

尝试从第一行删除

标记,一个
正在混乱

$sql = "INSERT INTO events_DB (event_id, event_end_time, event_location, event_name);"

您发布的代码与您正在运行的代码不同,因为发布的代码会在解析时导致语法错误,并且不会实际运行

但是,发送到prepare方法的SQL在某种程度上是无效的,因此返回并存储在
$stm
中的结果是布尔值(false),而不是有效的语句对象。请仔细检查您的SQL(您可以尝试在另一个应用程序(如phpMyAdmin)或通过mysql命令行程序运行它)为确保其有效性,您还可以添加一些错误处理以查找原因:

$stm = $db->prepare($sql);
if (!$stm) {
 die($db->errorInfo());
}

编辑:您已经修改了发布的源代码,现在显示了异常处理的用法。但是,您已经注释掉了响应异常消息的行。此信息将有助于告诉您是什么导致了错误情况。取消注释以查看消息(这很可能会通知您SQL无效,以及是哪个部分导致了错误).

$db应该是一个对象,使用您创建obj的方法吗?您是对的,它是$pdo。谢谢。现在erorr不存在了,但它仍然没有在db中插入任何内容。并且没有其他错误现在您可以在将查询传递到执行函数之前回显它,并直接在phpmyadmin上运行相同的查询,并检查您发生了什么错误,我有一些“字段不能为空”。我会处理这些,谢谢!很抱歉,这只是错误的格式设置。现在它的格式设置正确。请检查它。我不知道你在这里说什么。无论如何,我找到了它。现在我必须编辑我的phpmyadmin字段在这里和那里,它应该工作,我得到一个“不能为空”“错误。谢谢你的时间是的,没错,它不同,我有20个字段,无法在问题中添加所有字段,可能这就是我有解析错误的原因,可能我在格式化时没有什么。