我有以下功能:
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;
}
}
我得到的错误消息是:警告:mysql_fetch_assoc()期望参数1是资源,在第271行的C:\ xampp \ htdocs \ mytest \ core \ functions \ users.php中给出布尔值 知道我的功能有什么问题吗?
答案 0 :(得分:1)
您的MySQL
查询失败。您需要考虑添加一些错误检查。当mysql_error
的结果为假时,请使用mysql_query
。
答案 1 :(得分:0)
您的连接很可能超出范围。你需要将它传递给你的函数。
function user_data($user_id, $connect) {
...
}
答案 2 :(得分:0)
从http://php.net/manual/en/function.mysql-query.php开始,mysql_query
会在出错时返回FALSE
。在这种情况下,存在问题,因此返回FALSE
,会传递给mysql_fetch_assoc
,从而导致错误。
正如数据中所说,使用mysql_error
来查找问题。
答案 3 :(得分:0)
mysql_query()
在失败时返回FALSE
。
使用前请检查$fields
变量。
而是使用mysqli
。
$result = mysql_query("SELECT * FROM $fields") ;
if ($result){
//continue here, count rows or do something else.
}
答案 4 :(得分:0)
查询" SELECT $fields FROM users WHERE user_id = $user_id "
由于某种未知原因而失败。这导致mysql_query
返回PHP资源的FALSE
内容。
调用mysql_error()
以找出查询失败的原因。