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;
}}
代码中有什么问题吗?
答案 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);