mySQL连接无法正常工作

时间:2017-07-11 16:58:54

标签: php mysql sql mysqli

我对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语句,因为此代码也没有在我的数据库中插入任何内容。提前谢谢。

2 个答案:

答案 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;

相关问题