我对SQL很新,我正在尝试编写代码以从消息表单中插入信息。这是SQL代码:
$con = mysqli_connect($hostname,$username,$password,$db);
// Check connection
if (mysqli_connect_error()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$name = mysqli_real_escape_string($con, $_POST['name']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$message = mysqli_real_escape_string($con, $_POST['message']);
$sql = "INSERT INTO messages (name, email, message) VALUES ( '$name' , '$email' , '$message' )";
if (!mysqli_query($sql)) {
die ('Error: ' . mysqli_error());
}
else {
echo "<html><script language='JavaScript'> alert('Thank you for your submission.'),window.location = 'home'</script></html>";
}
此代码返回“Error:”,我解释为它认为存在错误,但没有任何错误。 mysqli_connect中的连接变量都是正确的,但我不确定我是否正确使用mysqli_real_escape_string甚至是$ sql语句,因为此代码也没有在我的数据库中插入任何内容。提前谢谢。
答案 0 :(得分:1)
根据mysqli_query()文档,如果您使用的是程序符号,则需要包含mysqli链接:
混合mysqli_query(mysqli $ link,字符串$ query [,int $ resultmode = MYSQLI_STORE_RESULT])
这表示您需要将$con
传递给mysqli_query()
,就像下面的其他函数调用一样:
mysqli_query($con, $sql)
此外,请查阅并阅读有关参数化的代码,因为它不应在实际站点上使用,因为您很容易受到SQL注入攻击。请花点时间阅读this并了解如何预防。
答案 1 :(得分:1)
尝试以这种方式运行查询
mysqli_query($con, $sql);
mysqli_query需要指向数据库连接的链接,即#34; $ con&#34;