mySQL 连接无法正常工作
Posted
技术标签:
【中文标题】mySQL 连接无法正常工作【英文标题】:mySQL connection not working properly 【发布时间】:2017-07-11 16:58:53 【问题描述】:我对 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>";
此代码返回“错误:”,我将其解释为它认为存在错误,但没有任何错误。 mysqli_connect 中的连接变量都是正确的,但我不确定我是否正确使用了 mysqli_real_escape_string 甚至 $sql 语句,因为这段代码也没有在我的数据库中插入任何内容。提前致谢。
【问题讨论】:
您正在混合使用mysql_
和 mysqli_
。修复它,然后查看准备好的语句。
@AlexTartan 我更改了它,但我仍然收到“错误:”
你没有将 $con 传递给 mysqli_query()
@PeterFeatherstone 我该怎么做?
你已经在用你的mysqli_real_escape_string()
来电了...
【参考方案1】:
根据mysqli_query() 文档,如果您使用的是过程符号,则需要包含您的 mysqli 链接:
混合 mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
这建议您需要将$con
传递给mysqli_query()
,就像您对其他函数调用一样,如下所示:
mysqli_query($con, $sql)
另外,请查看并阅读有关参数化的信息,因为您的代码不应该在实时站点上使用,因为您容易受到 SQL 注入的影响。请花时间阅读this 并了解如何预防。
【讨论】:
【参考方案2】:尝试以这种方式运行查询
mysqli_query($con, $sql);
mysqli_query 需要指向您的数据库连接的链接,即“$con”
【讨论】:
以上是关于mySQL 连接无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章