ホームページ > バックエンド開発 > PHPチュートリアル > mysql_fetch_array についての質問

mysql_fetch_array についての質問

WBOY
リリース: 2016-06-23 14:22:56
オリジナル
793 人が閲覧しました

データベースから複数行のレコードを取得する場合、通常はループを実行します
while ($arr = mysql_fetch_array($result,MYSQL_ASSOC)){
var_dump($arr)
}
しかし、このように書くとエラーが発生します。 $arr = mysql_fetch_array($result,MYSQL_ASSOC);
while($arr){
var_dump($arr);
私は個人的に、仮パラメータ $arr が強制的に文字列に変換されることを知っています。 mysql_fetch_array の後に得られたものを推測します。それが正しいかどうかはわかりません。アドバイスをお願いします。また、それが本当の場合、割り当て時に $arr をリソース変数として定義するにはどうすればよいでしょうか?

ディスカッションへの返信 (解決策)

$arr = mysql_fetch_array($query,MYSQL_ASSOC); while(list($k, $v) = each($arr)){//改成这样,不然直接$arr没有条件,mysql_fetch_array是有指针的 	     var_dump($arr);  }
ログイン後にコピー

PDO ステートメントを使用してください

$arr = mysql_fetch_array($result,MYSQL_ASSOC);//直接while ($arr = mysql_fetch_array($result,MYSQL_ASSOC))可以是因为有指针 while(list($k, $v) = each($arr)){//改成这样,不然直接$arr没有条件,会一直执行,所以会出错 	     var_dump($arr);  }
ログイン後にコピー
ログイン後にコピー

$arr = mysql_fetch_array($result,MYSQL_ASSOC);//直接while ($arr = mysql_fetch_array($result,MYSQL_ASSOC))可以是因为有指针 while(list($k, $v) = each($arr)){//改成这样,不然直接$arr没有条件,会一直执行,所以会出错 	     var_dump($arr);  }
ログイン後にコピー
ログイン後にコピー
ありがとう、でも私が聞きたいのは、それを実現する方法ではありません。 fetch_array が取得する型と、リソース変数に値を割り当てる方法

mysql_fetch_array は配列を取得します

gettype を使用して観察できます

settype 関数を使用してデータ型を変換できます

に変換することは不可能です資源だ!
マニュアルには明確に記載されています: リソースタイプ変数にはファイル、データベース接続、グラフィックキャンバス領域などを開くための特別なハンドルが保存されるため、他のタイプの値をリソースに変換することはできません。

mysql_fetch_array は配列を取得します

gettype を使用して観察できます

settype 関数を使用してデータ型を変換できます

しかし、それをリソースに変換することは不可能です。
マニュアルには明確に記載されています: リソースタイプ変数にはファイル、データベース接続、グラフィックキャンバス領域などを開くための特別なハンドルが保存されるため、他のタイプの値をリソースに変換することはできません。 ありがとう!教訓を教えてもらった

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート