我正在对MySQL数据库执行插入查询,并且查询在本地XAMPP上运行良好,但是当我在服务器上尝试完全相同的代码时则不然。
这是代码:
if($app['database']->insert('tickets', [
'error' => $error,
'productid' => $productid,
'counterblack' => $counterblack,
'countercolor' => $countercolor,
'time' => $time,
'date' => $date,
'active' => 1
]))
{
header("Location: ../Tasks.php");
}
else
{
echo "Error";
}
插入功能:
public function insert($table, $parameters)
{
$query = sprintf('insert into %s (%s) VALUES (%s)', $table, implode(', ', array_keys($parameters)), ':' . implode(', :', array_keys($parameters)));
$statement = $this->pdo->prepare($query);
$statement->execute($parameters);
return $this->pdo->lastInsertId();
}
出于某种原因,它总是转到 else 部分并在执行代码时显示"错误"。
我在$this->pdo->errorInfo();
上使用var_dump,输出为:
array(3( { [0]=> string(5( "00000" [1]=> NULL [2]=> NULL }
数据库模式类似于我从 XAMPP 导出并将其直接上传到服务器。这里可能有什么问题?谢谢!
编辑:我忘了添加一些重要信息,相同的插入查询适用于不同的表,但它不适用于此"票证"表。
自从我尝试将关键字更改为不同的列名称以来,不是重复的,问题仍然存在。
如果它真的如此令人困惑,那么为什么不尝试阅读错误消息呢?
<?php
...
$statement = $this->pdo->prepare($query);
/* insert this */
if (!$statement) {
echo "PDO::errorInfo():n";
print_r($this->pdo->errorInfo());
}
...
?>