-1

重複の可能性:
mysql_fetch_array()は、パラメーター1がリソースであり、ブール値がselectで指定されていることを想定しています。

これは私が持っているものです

<?php 
            mysql_select_db("my_db", $conn);

            $result = mysql_query("SELECT name FROM card");

            while($row = mysql_fetch_array($result))
            {
            echo $row['name'];
            echo "<br />";
            }
?>

警告:mysql_fetch_array()は、パラメーター1がリソースであると想定しています。ブール値はD:\ xampp \ htdocs\UFSDBSearch.phpの113行目にあります。

私が得ているものです。それが何を意味するのかわかりません。そのテーブルに保存されているカードの名前をエコーアウトさせようとしているだけです。詳細をお知らせする必要がある場合は、お知らせください。よろしくお願いします。

4

3 に答える 3

5

mysql_query()FALSEを返しました。これは、何らかのエラーが原因でクエリが正常に完了しない場合に発生します。DBに接続するコードを確認し、そのDBで動作していることを確認してくださいSELECT name FROM card

さらに調査するには、次のようにします。

if (!$result) {
    die('Invalid query: ' . mysql_error());
}

MySQLによって返される実際のエラーが表示されます。

さらに、誰かが提案したように、のような新しい(そしてより良い)DBインタラクションパラダイムを学ぶことを検討するかもしれませんPDOmysql_*関数はレガシーです(非推奨)。

于 2012-09-16T18:44:12.410 に答える
2

PDOは。よりもはるかに優れていmysql_ます。

<?php
$db = new PDO('mysql:host=localhost;dbname=my_db', 'username', 'password');
// The next line is only needed if you are using prepared statements,
// see the next block of code below
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$query = $db->query('SELECT name FROM card');
$rows = $query->fetchAll();
foreach($rows as $row) {
    echo $row['name'] . '<br />';
}
?>

編集:動的クエリを使用している場合は、次のようなものを使用する必要があります。

<?php
$db = new PDO('mysql:host=localhost;dbname=my_db', 'username', 'password');
// Turn off prepare emulation, *this is good practice*
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$query = $db->prepare('SELECT name FROM card WHERE id = ?');
$query->execute(array($_GET['id']));
$rows = $query->fetchAll();
foreach($rows as $row) {
    echo $row['name'] . '<br />';
}
?>
于 2012-09-16T19:03:46.893 に答える
-1

次のことを試して、それが役立つかどうかを確認してください。より多くのエラー報告が含まれています。

mysql_select_db("my_db", $conn);

$result = mysql_query("SELECT name FROM card") or die(mysql_error());

if (mysql_num_rows($result) > 0)
{
    while($row = mysql_fetch_array($result))
        {
        echo $row['name'];
        echo "<br />";
        }
}
else{
    echo 'There were no results found.';
}
于 2012-09-16T18:47:24.813 に答える