错误:mysql_fetch_assoc(表字段名称)

时间:2014-02-19 09:51:12

标签: php mysql database login fetch

一切都运转正常,突然发生了这样的事情:

  

PHP警告:mysql_fetch_assoc()要求参数1为资源,布尔值在第17行的G:\ PleskVhosts \ modelcharm.com \ httpdocs \ core \ functions \ users.php中给出

function user_data($user_id) {
    $data = array();
    $user_id = (int)$user_id;

    $func_num_args = func_num_args();
    $func_get_args = func_get_args();

    if ($func_num_args > 1) {
        unset($func_get_args[0]);   

        $fields = '`' . implode('`, `', $func_get_args) . '`';
        $data = mysql_fetch_assoc(mysql_query("SELECT $fields FROM `users` WHERE `user_id` = $user_id"));

        return $data;
    }}

代码中有什么问题吗?

2 个答案:

答案 0 :(得分:5)

这意味着,出现了错误。 这将显示详细的错误消息:

$getData = mysql_query("SELECT $fields FROM `users` WHERE `user_id` = $user_id") or die (mysql_error());

$data = mysql_fetch_assoc($getData);                 

答案 1 :(得分:0)

首先,请避免使用mysql_*弃用的php 5.5函数,并开始使用mysqli_*函数或PDO

然后避免在mysql_fetch_assoc()中使用mysql_query(),因为如果查询失败,您将收到错误。始终使用die (mysql_error())查找查询是否已正确执行

所以写这样的编码

php > 5.2

$con = mysqli_connect("localhost","username","password","DBname");
$query=mysqli_query($con,"SELECT $fields FROM `users` WHERE `user_id` = $user_id") or die (mysqli_error($con));
$data = mysqli_fetch_assoc($query);

代表php < 5.3

$query=mysql_query("SELECT $fields FROM `users` WHERE `user_id` = $user_id") or die (mysql_error());
$data = mysql_fetch_assoc($query);