php - PHP 错误:当一切似乎都正确时,调用资源上的成员函数 query()
问题描述
所以,我只是写了一个代码,管理员可以查看用户的用户名和密码。我写了一些代码并从 w3schools 复制了一些:p。所以。每当我运行代码时,它都会显示错误 [Call to a member function query() on resource]
这是我的代码:
进程.php
<?php
$username = $_POST['uname'];
$password = $_POST['pass'];
$username = stripcslashes($username);
$password = stripcslashes($password);
$username = mysql_escape_string($username);
$password = mysql_escape_string($password);
$conn = mysql_connect("localhost","root","");
mysql_select_db("Login3");
$result = mysql_query("select * from users where username = '$username' and password = '$password'");
$row = mysql_fetch_array($result);
if($row['username'] == $username && $row['password'] == $password) {
echo "Welcome " . $row['username'];
}
else {
echo "Invalid Credentials";
}
echo <h3>User List</h3>;
mysql_connect("localhost","root","");
mysql_select_db("Login3");
$sql = "SELECT id, username, password FROM users";
$request = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<br> id: ". $row["id"]. " - Name: ". $row["username"]. " " . $row["password"] . "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
索引.html
<!DOCTYPE html>
<html>
<head>
<title>Login | Home</title>
</head>
<body>
<form action="process.php" method="POST">
<h3>Login</h3>
Username: <input type="text" name="uname"><br><br>
Password: <input type="password" name="pass"><br>
<input type="submit" name="btn">
</form>
<br>
<b>Test Accounts</b>
<table>
<tr>
<th>Username</th>
<th>Password</th>
</tr>
<tr>
<td>admin</td>
<td>admin@123</td>
</tr>
</table>
</body>
</html>
<style>
table, th, tr, td {
width: 25%;
border-collapse: collapse;
}
th, td {
border: 1px solid grey;
text-align: center;
}
tr {
background: white;
transition-duration: 0.3s;
}
tr:hover {
background: #ddd;
}
请更正我的代码并告诉我哪里错了。
解决方案
首先,您应该创建一次数据库连接并遵循正确的查询语法。如果要访问查询方法,则访问代码中不存在的 mysqli 类的查询方法,然后首先创建此类的实例,否则编写正确的查询语法。我更正了请检查下面
<?php
$username = $_POST['uname'];
$password = $_POST['pass'];
$username = stripcslashes($username);
$password = stripcslashes($password);
$username = mysql_escape_string($username);
$password = mysql_escape_string($password);
$conn = mysql_connect("localhost","root","");
mysql_select_db("Login3");
$result = mysql_query("select * from users where username = '$username' and password = '$password'");
$row = mysql_fetch_array($result);
if($row['username'] == $username && $row['password'] == $password) {
echo "Welcome " . $row['username'];
}
else {
echo "Invalid Credentials";
}
?>
<h3>User List</h3>
<?php
mysql_connect("localhost","root","");
mysql_select_db("Login3");
$sql = "SELECT id, username, password FROM users";
$request = mysql_query($sql);
if (mysql_num_rows($request) > 0) {
while($row = mysql_fetch_array($request)) {
echo "<br> id: ". $row["id"]. " - Name: ". $row["username"]. " " . $row["password"] . "<br>";
}
} else {
echo "0 results";
}
推荐阅读
- android - ArrayList - 我无法解决这个红线代码
- java - Java - 从图像中获取像素值矩阵
- ios - 无法在 iPhone 设备上调试我的 xamarin 表单应用程序
- macos - 更新到 Catalina 和 zsh 后,一些 LaunchAgent 将无法运行
- model-view-controller - 使用 mvc web app 在另一个文件夹中显示水晶报表
- lombok - 在我的系统上安装 Lombok 时遇到一些错误
- python - 如何从图像中识别最大的边界矩形并使用 Opencv 和 python 将它们分成单独的图像
- python - 在 Tensorflow 中广播动态维度
- java - GlobalStreamThread 正在使用所有 JVM 内存
- go - MaxAge 为 0 时,gorilla/sessions 无法保存新会话