php - 谁能帮我找出究竟是什么错误?
问题描述
连接失败:SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo 失败:不知道这样的主机。( ! ) 致命错误:未捕获的错误:在第 17 行的 C:\wamp\www\websits\admin\validate.php 中的字符串上调用成员函数 prepare() ( ! ) 错误:调用成员函数 prepare()在第 17 行 C:\wamp\www\websits\admin\validate.php 中的字符串上
代码-
<?php
include_once('connection.php');
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
if ($_SERVER["REQUEST_METHOD"]== "POST") {
$adminname = test_input($_POST["adminname"]);
$password = test_input($_POST["password"]);
$stmt = $conn->prepare("SELECT * FROM adminlogin");
$stmt->execute();
$users = $stmt->fetchAll();
foreach($users as $user) {
if(($user['adminname'] == $adminname) &&
($user['password'] == $password)) {
header("Location: adminpage.php");
}
else {
echo "<script language='javascript'>";
echo "alert('WRONG INFORMATION')";
echo "</script>";
die();
}
}
}
?>
// Connection -
<?php
$conn= "";
try {
$servername = "localhost:3306";
$dbname = "website";
$username = "root";
$password = "";
$conn = new PDO("mysql:host=$servername and dbname=website",$username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
解决方案
您的连接字符串错误
Your string
$conn = new PDO("mysql:host=$servername and dbname=website",$username, $password);
应该
$conn = new PDO("mysql:host={$servername};dbname={$dbname}",$username, $password);
并且您的服务器名称应该没有端口 $servername = "localhost";