0

私は次の機能を持っています:

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;
    }       
}   

私が得るエラーメッセージは次のとおりです。関数?

4

5 に答える 5

1

MySQLクエリが失敗しました。エラーチェックを追加することを検討する必要があります。mysql_errorの結果mysql_queryが falseの場合に使用します。

于 2013-04-05T15:28:56.433 に答える
0

" SELECT $fields FROM users WHERE user_id = $user_id "不明な理由でクエリが失敗します。これにより、PHP リソースの insterad がmysql_query返されます。FALSE

mysql_error()クエリが失敗した理由を調べるために呼び出します。

于 2013-04-05T15:30:28.510 に答える
0

あなたの接続は、おそらく範囲外です。それを関数に渡す必要があります。

function user_data($user_id, $connect) {
...
}
于 2013-04-05T15:28:07.233 に答える
0

http://php.net/manual/en/function.mysql-query.phpから、エラーでmysql_query返さFALSEれます。この場合、問題があるため、 が返さFALSEれ、これが に渡されmysql_fetch_assoc、エラーが発生します。

datasage が言うようmysql_errorに、問題を見つけるために使用します。

于 2013-04-05T15:29:06.183 に答える
0

mysql_query()FALSE失敗すると戻ります。$fields変数を使用する前に確認してください。代わりに使用mysqliします。

$result = mysql_query("SELECT * FROM $fields") ;
if ($result){
  //continue here, count rows or do something else.
}
于 2013-04-05T15:29:23.043 に答える