mysql\u fetch\u array()/mysql\u fetch\u assoc()/mysql\u fetch\u row()/mysql\u num\u rows等等期望参数1是资源

6xfqseft  于 2021-06-18  发布在  Mysql
关注(0)|答案(24)|浏览(519)

我试图从mysql表中选择数据,但收到以下错误消息之一:
mysql\u fetch\u array()期望参数1是资源,给定布尔值
这是我的密码:

$username = $_POST['username'];
$password = $_POST['password'];

$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');

while($row = mysql_fetch_array($result)) {
    echo $row['FirstName'];
}
xwbd5t1u

xwbd5t1u16#

如果您在这里尝试了所有方法,但都不起作用,那么您可能需要检查mysql数据库排序规则。我的被设定为瑞典的校勘。然后我把它改成了 utf8_general_ci 一切都很顺利。

uujelgoq

uujelgoq17#

试试这个,它必须是工作的,否则你需要打印错误来指定你的问题

$username = $_POST['username'];
$password = $_POST['password'];

$sql = "SELECT * from Users WHERE UserName LIKE '$username'";
$result = mysql_query($sql,$con);

while($row = mysql_fetch_array($result))
{
    echo $row['FirstName'];
}
ltskdhd1

ltskdhd118#

可能有两个原因:
在调用mysql\u查询函数之前,您是否打开了与数据库的连接?我在你的代码里看不到。在进行查询之前使用mysql\u connect。看到了吗 php.net/manual/en/function.mysql-connect.php 变量$username在单引号字符串中使用,因此不会在查询中计算其值。查询肯定会失败。
第三,查询结构易于sql注入。您可以使用事先准备好的声明来避免这种安全威胁。

mm9b1k5b

mm9b1k5b19#

在运行查询之前,请确保没有使用db\u close()关闭数据库:
如果在脚本中使用多个查询,甚至包括包含查询或数据库连接的其他页面,那么

ndasle7k

ndasle7k20#

在mysql查询之前包含一个连接字符串变量。例如, $connt 在本规范中:

$results = mysql_query($connt, "SELECT * FROM users");
htzpubme

htzpubme21#

试试这个

$username = $_POST['username'];
$password = $_POST['password'];
$result = mysqli_query('SELECT * FROM Users WHERE UserName LIKE $username');

if($result){
while($row = mysqli_fetch_array($result))
{
    echo $row['FirstName'];
}
}
qzwqbdag

qzwqbdag22#

$query = "SELECT Name,Mobile,Website,Rating FROM grand_table order by 4";

while( $data = mysql_fetch_array($query))
{
    echo("<tr><td>$data[0]</td><td>$data[1]</td><td>$data[2]</td><td>$data[3]</td></tr>");      
}

不使用where查询,您可以按查询顺序使用此查询。对于查询的使用,它比这个好得多。
我做了这个查询,没有得到像参数或布尔值这样的错误。

o4hqfura

o4hqfura23#

<?php
    $username = $_POST['username'];
    $password = $_POST['password'];
    $result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '".$username."'");

    while($row = mysql_fetch_array($result))
    {
        echo $row['FirstName'];
    }
?>

如果有一个用户名是唯一的,你可以用“=”来表示。没有必要喜欢。
您的查询将是:

mysql_query("SELECT * FROM Users WHERE UserName ='".$username."'");
6yt4nkrj

6yt4nkrj24#

<?php
      $username = $_POST['username'];
       $password = $_POST['password'];

     $result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '".mysql_real_escape_string($username)."'")or die(mysql_error());
while($row=mysql_fetch_array($result))
  {
 echo $row['FirstName'];
 }
 ?>

相关问题