为什么此MySQLi prepare语句无法更新数据库?

时间:2019-03-30 02:08:17

标签: php mysqli

我正在使用MySQLi在php中准备语句。完全相同的代码在我的本地计算机上可用,但在联机服务器上失败(它不会插入数据库表中)。我是服务器菜鸟,所以我不知道是否需要配置。以下代码中的else分支是我从另一个SO问题获得的,但没有返回任何错误。我的php文件顶部有以下内容:

error_reporting(E_ALL);
ini_set('display_errors', 1);

要添加的修改:$conn->prepare(....)返回false

$conn = new mysqli($SERVER, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

if ($stmt = $conn->prepare("INSERT INTO tblTasks (taskID, blockNumber, transactionID, tasker, permlink, title, price, location, currency, tags, `status` ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) {
    $stmt->bind_param("sssssssssss", $taskID, $blockNumber, $transactionID, $tasker, $permlink, $taskTitle, $taskPrice, $location, $currency, $tags, $status);
    if(!$stmt->execute()) {
        die("Insertion failed.");
    }
    $stmt->close();
} else {
    $error = $conn->errno . ' ' . $conn->error;
    echo $error;
}

1 个答案:

答案 0 :(得分:0)

借助于注释部分的帮助,我能够成功执行错误报告,并且发现错误是大写的表名的简单情况,而该表名不应大写。在我的本地Windows环境中,大写字母被忽略,而在linux开发环境中,大写字母是严格的!