我正在使用以下代码将其插入到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.';
}
}
答案 0 :(得分:1)
您的查询从未执行过。您可能要使用mysqli_query(...)
来执行SQL语句。
所以这行:
$result = mysqli_real_escape_string($conn, $sql);
应该是:
$result = mysqli_query($conn, $sql);
然后它应该可以工作并更新您的表。为了确保您的查询安全,请尝试使用prepared statements。使用mysqli_real_escape_string()
不足以防止SQL注入。