エラー警告:PHPのmysql_fetch_assoc()

可能重複:
  警告:mysql_fetch_array():指定された引数有効なMySQL結果ではありません

db.phpで私は持っている:

<?php
class connect {

    private $host = "localhost";
    private $user = "root";
    private $pass = "";
    private $database = "databasename";
    private $connect = null;

    function connect() {
        $this->connect = mysql_connect($this->host, $this->user, $this->pass) or die("Can't connect database");
        mysql_select_db($this->database, $this->connect);
    }

    function getData() {
        $data = array();
        $sql = 'Select * From test';
        $query = mysql_query($sql);
        while($row = mysql_fetch_assoc($query)) {
            $data[] = array($row['id'], $row['name']);
        }
        return $data;
    }

}
?>

私はindex.phpにあります:

<?php
include 'db.php';
$connect = new connect();
$connect->connect();
$data = $connect->getData();
$str = '';
foreach ($data as $dt) {
    $str .= $dt[1];
}
echo $str;
?>

I am getting the following error: => error: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource from db.php.

私は間違って何をしていますか?

2
経験則として、ローカル変数をクラスと同じ名前にしないでください: 'connect'。 'private $ connect'を(例えば) 'private $ connection'に変更してください。 $ query = mysql_query($ sql、$ this-> connection);次に、その変数をクエリで使用する必要があります。
追加された 著者 dar7yl,
あなたのコードをコピーしてコピーしようとしましたが、No Error Found!データベース名、データベースパスワード、データベースユーザー、またはテーブル名を確認してください。
追加された 著者 Zulkhaery Basrul,

3 答え

エラーが何であるか調べてみてください:

  function getData() {
    $data = array();
    $sql = 'Select * From test';
    $query = mysql_query($sql);
    if(!$query) 
    {
     echo 'Error: ' . mysql_error(); /* Check what is the error and print it */
     exit;
    }

    while($row = mysql_fetch_array($query)) {  /* Better use fetch array instead */
        $data[] = array($row['id'], $row['name']);
    }
    return $data;
}
6
追加された
私はエラーメッセージが私が言及した2つの事の一つであると確信しています:P
追加された 著者 Jessedc,
なぜこれが下落したのか分かりません。クエリーに何か問題があります。そうでないと結果リソースオブジェクトが返されます。見つけ出すには、エラーメッセージを表示するしかありません。
追加された 著者 spatel,

このエラーは、 $ query = mysql_query($ sql); によって実行されたクエリがエラーを返すことを示しています。 'test' という名前のデータベースに 'databasename' という名前のデータベースが存在しないことを示すエラー存在しない。

2
追加された

クエリや一般的なクエリエラーから返される結果がないように聞こえますが、クエリの列とテーブルは存在し、データベースへの接続はすべて正常ですか?

0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com