0

MySQL データベースへの非常に標準的な呼び出しがありますが、何らかの理由でコードを動作させることができません。ここに私が持っているものがあります:

$mysqli = mysqli_connect("localhost","username","password");
if (!$mysqli)
  {
  die('Could not connect: ' . mysqli_error($mysqli));
  }
session_start();
$sql = "SELECT * FROM jobs ORDER BY id DESC";
$result = $mysqli->query($sql);
$num_rows = mysqli_num_rows($result);

まず、die メソッドを取得していないことに加えて、else 条件を以前に追加してチェックアウトしたため、適切に接続されていることがわかりました。その後、ページが表示されますが、エラーが発生します。

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in blablabla/index.php on line 11

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in blablabla/index.php on line 12

データベースを再確認したところ、"id" の行 (プライマリ行) を持つ jobs というテーブルがあります。私を混乱させているのは、これが私が構築した別のサイトから文字通りコピーして貼り付けたコードであり、何らかの理由でコードがこのサイトで機能しないことです (明らかにコピーして貼り付け、それに応じてテーブル名と行を変更しました) )。

私はエラーを見て試しました:

$num_rows = $mysqli_result->num_rows;
$row_array = $mysqli_result->fetch_array;

エラーは修正されましたが、データが渡されませんでした (明らかに $mysqli_result に値がないため)。エラーがそれを要求している理由がわかりません (他のサイトとの MySQL または PHP のバージョンの違いですか)?

誰かが問題を追跡するのを手伝ってくれますか? 本当にありがとう。私が見落としているのが非常に単純なものである場合は申し訳ありません。

4

5 に答える 5

5

データベースを選択していません

$mysqli = mysqli_connect("localhost","username","password","database");
于 2012-12-12T05:00:50.273 に答える
2

問題は、データベースを選択していないことです。

このコードをデータベースの選択に使用します。

$mysqli = mysqli_connect("localhost","username","password");
mysqli_select_db("db_name",$mysqli);

mysql クエリを起動するには、データベースを選択する必要があります。そうしないと、エラーが発生します。

于 2012-12-12T04:59:29.320 に答える
1

これを試して:

 session_start();
 $mysqli = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
      if ($mysqli->connect_errno)
       {
           echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
           $mysqli->close();
       }
           $query ="SELECT * FROM jobs ORDER BY id DESC";
            $values = $mysqli->query($query);
                if($values->num_rows != 0)
                    {
                        while($row = $values->fetch_assoc())
                        { 
                            //your results echo here
                        } 
                    }
                    else
                        {
                            //if no results say so here
                        }
于 2012-12-12T05:07:13.123 に答える
1

schtever は正しいと思います。データベースを選択しているとは思いません。コードスニップにはありません。オンラインで検索すると、データベースが選択されていないため、同様のエラーが発生した他の人が表示されます。他のものをチェックする前に、データベースを選択した場合はお知らせください。ありがとう。

于 2012-12-12T05:02:34.570 に答える
-1

この関数でデータベースを選択できるmysqli_connectについては、このマニュアルを参照してください。

于 2012-12-12T05:02:33.703 に答える