MySQL:PHP:由于警告,无法从表中获取数据

Posted

技术标签:

【中文标题】MySQL:PHP:由于警告,无法从表中获取数据【英文标题】:MySQL: PHP: Cannot obtain data from table because of warnings 【发布时间】:2015-10-14 22:05:53 【问题描述】:

我正在尝试从 mysql 数据库中的表用户获取数据。使用下面的代码,我可以登录到数据库(不返回错误),但是当我尝试从表中读取数据时它会显示警告(在这种情况下,我只需选择行来检查代码是否作品)。代码如下:

<?php

$host_name  = "localhost";
$database   = "aj_database";
$user_name  = "aj_user";
$password   = "password";

$connect = mysqli_connect($host_name, $user_name, $password, $database);
if (mysqli_connect_errno())

    echo "The connection failed: " . mysqli_connect_error();


$username = $_GET["username"];
$password = $_GET["password"];

$query = ("SELECT * FROM users WHERE username = 'admin'");
$insert = mysql_query ($query);

if(mysql_num_rows($query) == 0) 
    echo "NO";
 else 
    echo "YES!!!!!!!!";


?>

使用上面的代码,我得到以下结果:

警告:mysql_query() [function.mysql-query]:第 18 行 /home/adamjudk/public_html/airlinessimulator/login.php 中的用户 'root'@'localhost'(使用密码:NO)的访问被拒绝

警告:mysql_query() [function.mysql-query]:无法在第 18 行的 /home/adamjudk/public_html/airlinessimulator/login.php 中建立到服务器的链接

警告:mysql_num_rows() 期望参数 1 是资源,字符串在第 20 行的 /home/adamjudk/public_html/airlinessimulator/login.php 中给出

并且返回的结果是在这些错误之后

没有

我做错了什么?

【问题讨论】:

这个错误是由于密码错误或类似的原因 你混合mysql_*mysqli_* 首先尝试登录phpmyadmin,它工作正常。如果没有,请告诉我我给你解决方案 Fix Access denied for user 'root'@'localhost' for phpMyAdmin 的可能重复项 @AdamJ 也请投票支持我的答案。如果你觉得它有用。 【参考方案1】:

您使用的是mysql_query() 而不是mysqli_query()

并使用if(mysql_num_rows($query) == 0) 而不是if(mysqli_num_rows($query) == 0)

试试快速更新的代码。

$host_name  = "localhost";
$database   = "aj_database";
$user_name  = "aj_user";
$password   = "password";

$connect = mysqli_connect($host_name, $user_name, $password, $database);
if (mysqli_connect_errno())

    echo "The connection failed: " . mysqli_connect_error();


$username = $_GET["username"];
$password = $_GET["password"];

$query = "SELECT * FROM users WHERE username = 'admin'";
$result = mysqli_query($connect, $query);

if(mysqli_num_rows($result) == 0)

    echo "NO";

else

    echo "YES!!!!!!!!";

【讨论】:

这仍然会导致 NO,因为 mysql_num_rows($query) 完全是错误的 @GerdK 我已经改成if(mysqli_num_rows($query),但现在我的回答中也提到了。 @GerdK 抱歉,知道了。

以上是关于MySQL:PHP:由于警告,无法从表中获取数据的主要内容,如果未能解决你的问题,请参考以下文章

从表中保存多个下拉选择 - PHP MySQL

如何从表中获取数据并将其插入另一个表?

使用 MySQL 从表中获取特定列表,然后获取剩余的列表

如何从表中获取所有数据,包括表 ID

使用 mysql 和 php 从表中删除

使用 python 和 mysql.connector 从表中获取数据