我使用以下代码插入到一个MySQL表中。我已经做了一些手动测试,以确定所有变量都设置正确。代码正在执行成功语句,当我检查Heroku日志时,它给出了状态200。然而,当我检查该表时,没有插入任何内容。有没有人可以找出代码中的问题,或者告诉我在哪里可以找到错误消息来帮助我解决这个问题。谢谢。
else {
$url = parse_url(getenv('CLEARDB_DATABASE_URL'));
$server = $url['host'];
$username = $url['user'];
$password = $url['pass'];
$db = substr($url['path'], 1);
$conn = mysqli_connect($server, $username, $password, $db);
$sql = sprintf("INSERT INTO messages (name, email, message) VALUES ('%s', '%s', '%s')",
mysqli_real_escape_string($conn, $name),
mysqli_real_escape_string($conn, $email),
mysqli_real_escape_string($conn, $message));
$result = mysqli_real_escape_string($conn, $sql);
if (!$result) {
echo 'an error occurred.';
}
else {
$success = 'Thank you. Your submission was saved.';
}
}
发布于 2018-09-28 07:26:04
您的查询从未执行过。您可能希望使用mysqli_query(...)来执行您的SQL语句。
所以这一行:
$result = mysqli_real_escape_string($conn, $sql);应该是:
$result = mysqli_query($conn, $sql);然后,它应该可以工作并更新您的表。为确保查询的安全性,请尝试使用prepared statements。使用mysqli_real_escape_string()还不足以防止SQL注入。
https://stackoverflow.com/questions/52546315
复制相似问题