我经历了弄清楚如何在配置文件中绑定(bind)正确的地址并将 mysql 连接到我的远程服务器的艰苦过程。昨天它使用不同的代码,但现在无法连接。我收到模具“连接失败:”,但它没有向我显示我所要求的 connect_error,所以甚至无法弄清楚问题?有人看到我的代码有问题吗?注意:我知道这是不安全的,我通常会做准备好的语句,但现在只是尝试处理与数据库问题的连接。
<?php
$server = "174.---.--.187";
$username = "dylanto";
$pass = "------";
$db = "survey";
//$port = 3306;
//create connection
$conn = new mysqli($server, $username, $pass, $db);
//check connection
if (!$conn->connect_error) {
die("Connection failed: " . $conn->connect_error);}
$user = $_POST['user'];
$pass = $_POST ['pass'];
$sql = "insert into login (user, pass) values ('$user','$pass')";
if ($conn->query($sql)==TRUE) {
echo "Account created";}
else {echo "something went wrong";}
$con->close;
?>
HTML 代码:
<html><head><title>Log-in</title>
<link rel="stylesheet" type="text/css" href="sytle.css"></head>
<body>
<center><u><strong><h2>Login</h2></u></strong></center>
<br />
<center>
<form action="signup_process.php" method="POST">
Pick Username: <br>
<input type ="text" name = "user"><br>
Pick Password:<br>
<input type ="password" name ="pass"><br>
<input type="submit" name="submit" value="Sign-up">
</form></center>
</body>
</html>
最佳答案
来自
if (!$conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
致:
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
因为 if ($conn->connect_error) = 如果有错误,而 if (!$conn->connect_error) 如果没有错误。
对于准备好的声明:
来自:
$sql = "insert into login (user, pass) values ('$user','$pass')";
if ($conn->query($sql)==TRUE) {
echo "Account created";}
else {echo "something went wrong";}
致:
//sanityze POST
$user = trim(mysqli_real_escape_string($conn, htmlspecialchars($_POST['user'], ENT_QUOTES, 'UTF-8')));
$pass = trim(mysqli_real_escape_string($conn, htmlspecialchars($_POST['pass'], ENT_QUOTES, 'UTF-8')));
//use prepared
$stmt = $conn->prepare("insert into login (user, pass) values (?,?)");
//bind parameter
$stmt->bind_param("ss", $user, $pass)
$stmt->execute();
//then check
关于php - Mysql 已正确配置远程连接,但 php 代码连接失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45720326/