php - PDO 查询在本地运行,而不是在服务器上运行

标签 php mysql pdo

我正在对 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());
    }
    ...
    ?>

关于php - PDO 查询在本地运行,而不是在服务器上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51149100/

相关文章:

继承

php - 我想在使用 JavaScript 和 PHP 键入时向用户建议一些数据。这怎么可能?

mysql - 如何关闭 MySQL 中的现有连接

php - 使用 PDO 获取 if 语句内部

php - 分页 - 检查是否存在下一个/上一个记录

php - 何时在 PHP 应用程序中使用 Redis 而不是 MySQL?

php - xdebug 没有显示完整的堆栈跟踪

javascript - Localhost 拒绝来自 Javascript 的连接

mysql - MySQL 中的 DATE_FORMAT 与 LIKE 性能比较

php getaddrinfo 失败 : "A non-recoverable error occurred during a database lookup."