【问题标题】:MySQL: PHP: Cannot obtain data from table because of warningsMySQL:PHP:由于警告,无法从表中获取数据
【发布时间】: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,它工作正常。如果没有,请告诉我我给你解决方案
  • @AdamJ 也请投票支持我的答案。如果你觉得它有用。

标签: php mysql


【解决方案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 抱歉,知道了。
猜你喜欢
  • 2019-05-17
  • 1970-01-01
  • 2023-04-04
  • 2014-12-04
  • 1970-01-01
  • 2018-12-17
  • 1970-01-01
  • 2020-12-11
  • 2014-08-14
相关资源
最近更新 更多