ホームページ > バックエンド開発 > PHPチュートリアル > [真剣に入力してください] 警告: mysql_fetch_array(): mysql からデータをフェッチするときに指定された引数は有効な MySQL 結果ではありません

[真剣に入力してください] 警告: mysql_fetch_array(): mysql からデータをフェッチするときに指定された引数は有効な MySQL 結果ではありません

WBOY
リリース: 2016-06-13 13:20:22
オリジナル
1176 人が閲覧しました

[参加するときは真剣に考えてください] 警告: mysql_fetch_array(): 指定された引数は有効な MySQL 結果ではありません
タイトルにあるように、私はこの問題について Baidu と Google で数え切れないほど検索しましたが、その原因は何回ありますか。データ不足が原因で SQL クエリ ステートメントが間違っていますか?そのうちの 1 つは、何と言うか、意図的に他の人を誤解させ、エラー メッセージをブロックするために mysql_fetch_array に @ を追加するように指示しているように感じます。実際、問題はまったく解決されておらず、単にエラーが発生していないだけです。と促されました。以下のコードは

$conn=mysql_connect("localhost","test","test");
echo $conn."
";// ここに出力される結果は次のとおりです。 : リソース ID #1
mysql_select_db("test")
$r=mysql_query("select * from table1 where id > 0",$conn);
if($r==false) echo "query error";//ここでの出力結果は次のとおりです: query error
else
{
while ($row=mysql_fetch_array($r,MYSQL_ASSOC))
{
$rows[] =$ row;
}
}
実際には、このプログラムをローカルで実行できますが、デバッグのためにプログラムを上記のように単純化しましたが、それでも実行できません。クエリを実行しても false が返され続け、データのフェッチ時にエラーが報告されます。 警告: mysql_fetch_array(): 指定された引数は有効な MySQL 結果ではありません

に接続するために phpMyadmin を使用します。サーバーにアクセスし、select * from table1 where id > 0 は問題ありません。
私は C# から移行した PHP の初心者です。

-----解決策---------
$r=mysql_query("select * from table1 where id > 0",$conn);
逆に書きましたか: $r=mysql_query($conn, "select * from table1 where id > 0");

while ($row=mysql_fetch_array($r,MYSQL_ASSOC))
MYSQL_ASSOC?これは必要ですか? while ($row=mysql_fetch_array($r)) を直接使うことはできないのでしょうか?なぜあなたの書き方は私と違うのですか~~~~
------解決策------------------
マニュアルをもっと読んで、次のことを学ぶことをお勧めします。マニュアルを読んでください。ほとんどの問題は自分で解決できます。
------解決策----------------------
にアップロードするときは、ユーザー名とパスワードを変更する必要がありますサーバー


PHP コード


  $conn=mysql_connect("localhost","test","test") または die('接続に失敗しました');
mysql_select_db("test"); //セミコロンに注意してください
$r=mysql_query("select * from table1 where id > 0",$conn) または die("クエリが失敗しました");
if(mysql_num_rows($r)>0){ //レコードがあれば実行

    while ($row=mysql_fetch_array($r))
    {
         $rows[]=$row['フィールド'];
     }
}
<br><font color="#e78608">------解決策---------</font><br>
ログイン後にコピー
話し合う
$r=mysql_query("select * from table1 where id > 0",$conn);
逆に書いたのでしょうか: $r=mysql_query($conn,"select * from table1 where id > 0",$conn) ");

while ($row=mysql_fetch_array($r,MYSQL_ASSOC))
MYSQL_ASSOC?これは必要ですか? while ($row=mysql_fetch_array($r)) を直接使うことはできないのでしょうか?なぜあなたの文体は私と違うのですか~~~~

------解決策----------------------
MYSQL_ASSOC、マネージド配列、フィールドとして行を返す必要があります名前はキーを表し、フィールドの内容は値を表します。投稿者は、空間実行エラーが発生したと述べていますが、データベースの構成に問題はありませんか?
また、私は普段mysqli拡張機能を使用して動作させています。 mysql_fetch_arrayはphp4で書く方法ですか? mysql_fetch_array($query);
------解決策----------------------
以前にも @ エラーに遭遇したことがありましたが、次のことがわかりました。後で。追加したい場合はすべて追加するか、まったく追加しないでください。他の 2 つを追加するとエラーが発生します。
5階のコードは非常に明確に書かれています。リズ、マニュアルをもっと読んでください

------解決策---------
返された配列は false です
この場合一度遭遇しましたが、他の人がアクセスしたと言っていました。
サーバーとローカルの mysql バージョン、およびデータベース作成ステートメントが一貫しているかどうかを確認することをお勧めします。
while ($row=mysql_fetch_array($r,MYSQL_ASSOC) )
問題は、追加したパラメータ MYSQL_ASSOC にある可能性があります。実際には、デフォルトでは、数値インデックスとフィールド インデックスの両方が存在するかどうかを print_r($row) で確認します。フィールド名をサポートします。

------解決策---------
話し合う
返された配列は false です
私も一度この状況に遭遇しましたが、アクセスと言ったのは他の人でした。
サーバーとローカルの mysql のバージョン、およびデータベース作成ステートメントが一貫しているかどうかを確認することをお勧めします。
while ($row=mysql_fetch_array($r,MYSQL_ASSOC))
問題は、追加したパラメータ MYSQL_ASSOC にある可能性があります。実際、デフォルトでは、数値インデックスとフィールド インデックスの両方が存在し、サーバーがフィールド名をサポートしているかどうかを print_r($row) で確認します。


------解決策------------------
はは、問題が発生しないときは、信じられないかもしれませんが、デバッグしてみればその理由がわかるでしょう。
------解決策---------
話し合う
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート