【发布时间】:2014-03-22 19:08:37
【问题描述】:
通过我的表单提交内容后,我得到了欢迎部分,然后是 mysql 连接错误,因为 mysql 已关闭,当我打开它时它就消失了,然后是布尔错误。 “警告:mysqli_query() 期望参数 1 为 mysqli,布尔值在 C:\xampp\htdocs\welcome.php 第 25 行给出”
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?><br>
Your password is <?php echo $_POST["password"]; ?><br>
You have purchased the <?php echo $_POST["sub_type"]; ?>
<?php
$mysqli_host = "localhost";
$mysql_username = "root";
$mysql_password = "123";
$site_db = "test";
$info_name = $_POST["name"];
$info_pass = $_POST["password"];
$info_email = $_POST["password"];
$sub_type = $_POST["sub_type"];
$con=mysqli_connect($mysqli_host,$mysql_username,$mysql_password,$site_db);
// Checks connection to twitch webpanel database and inserts registreation info
if (mysqli_connect_errno());
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO Users (Username, Password, Email, Subcription)
VALUES ('$info_name', '$info_pass', '$info_email', '$sub_type')");
?>
</body>
</html>
【问题讨论】:
-
不要使用 mysqli。请改用 PDO。您的代码中存在会导致您的服务器被黑客入侵的错误,请查看 SQL 注入。基本上,您想使用 PDO 的准备好的语句功能将 $_POST 嵌入到查询中。但是花一些时间研究它,你需要把它做好,否则你会遇到严重的麻烦。
-
它不是一个公共页面
-
始终调试
mysqli_query($con,"INSERT INTO Users (Username, Password, Email, Subcription) VALUES ('$info_name', '$info_pass', '$info_email', '$sub_type')") or die(mysqli_error($con)); -
是否公开也没关系,这仍然是错误的做法,您将有错误。
-
@AbhiBeckert 我会说 mysqli 是安全的,因为它支持准备好的语句,所以有什么关系?