我使用下面的代码插入到mysql表中。我做了一些手动测试,以确定所有的变量都设置正确。代码正在执行success语句,当我检查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.';
}
}
1条答案
按热度按时间vmjh9lq91#
您的查询从未执行过。您可能想使用
mysqli_query(...)
执行sql语句。所以这一行:
应该是:
然后它应该工作并更新您的表。为了确保您的查询是安全的,请尝试使用准备好的语句。使用
mysqli_real_escape_string()
不足以阻止sql注入。