少しPHP私が苦労しているコード-Googleなどを検索して、言及されているすべてを試しましたが、何らかの理由でそれを解決するのに問題があります。
問題は:
特定のユーザーの存在をデータベースに照会するコードがいくつかあります。
コード(クラス内のメソッドです)
_<?php
global $mysqli;
// Query specified database for value
$q = 'SELECT id FROM ' . $database . ' WHERE username = \'' . $username . '\'';
$r = $mysqli->query($q);
var_dump($r);
if ($r->num_rows) {
// If row found username exists so return false
return false;
}
...
?>
_
クエリの結果($ r)をvarダンプして、次のようにしました。
_object(mysqli_result)#4 (5) { ["current_field"]=> int(0) ["field_count"]=> int(1) ["lengths"]=> NULL ["num_rows"]=> int(1) ["type"]=> int(0) }
_
これは正しいです。上記のように1行だけにする必要があります。
if ($r->num_rows) {
という行にリンクしているこのエラーが発生します
注意:LINE行のFILEで非オブジェクトのプロパティを取得しようとしています
しかし、オブジェクトが(上記のように)有効であり、正常に機能しているはずなので、理由はわかりません。私の知る限り、問題はないようですが、なぜエラーがあるのか疑問に思っています。簡単なことだと思いますが、助けていただければ幸いです。
$sql = "SELECT * FROM table";
$result = $conn->query($sql);
if (!$result) {
trigger_error('Invalid query: ' . $conn->error);
}
mysqli_error()関数でエラーを確認してください
おそらくあなたのクエリにはいくつかの欠点があります。
問題の原因は単純です。非常に多くの人が同じ問題に遭遇するでしょう。私もそうだったので、理解するのに1時間かかりました。万が一、他の誰かがつまずいた場合に備えて、問題はクエリにあります。selectステートメントはテーブル名の代わりに$dbname
を呼び出しています。したがって、false
であるboolean
を返すことは見つかりませんでした。幸運を。