我正在使用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;
}
答案 0 :(得分:0)
借助于注释部分的帮助,我能够成功执行错误报告,并且发现错误是大写的表名的简单情况,而该表名不应大写。在我的本地Windows环境中,大写字母被忽略,而在linux开发环境中,大写字母是严格的!