2016-02-05 6 views
5

現在MySqlを学習していますが、この問題が発生しています。 次のコードは、usersテーブル内のすべてのものをdbに問い合わせるだけです。このエラーを返します。 Error: SELECT * FROM users私を助けてくれません。私は正常にデータベースに項目を挿入することができますが、それから選択することはできません。私も試しました$sql = "SELECT * FROM ama.users";私のDB構造はmysql selectから生成されたエラー

ama 
|-users 

助けてくれれば幸いです。

$conn = new mysqli($_ENV['OPENSHIFT_MYSQL_DB_HOST'],$_ENV['OPENSHIFT_MYSQL_DB_USERNAME'], $_ENV['OPENSHIFT_MYSQL_DB_PASSWORD'], 'ama'); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$username = "Doe"; 
$password = "johnexample"; 
$sql = "SELECT * FROM users"; 
if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 
+0

追加してください完全なエラーメッセージ – Jens

+0

@Jensそれは私に与える完全なエラーメッセージです..もしそれがより多くのIDをより良いデバッグすることができます。 – hurnhu

+1

Doing === TRUEは、リソースオブジェクトまたはnullを返すため、selectでは機能しません。だから== TRUEでもうまくいくはずです。 ===は厳密な型チェックです。つまり、ブール値でなければならず、リソースオブジェクトはブール値ではありません。 – Asperon

答えて

5

を$結果の行をチェックPHP Manual

mysqliの::クエリが成功でオブジェクトを返し、falseを返します失敗しました。

ですから、データの種類(===)をチェックせずにそれを使用することができます:あなたはvar_dump()を使用して、あなたが好きなものを取得しているチェックすることができ、より良く理解するために

if ($conn->query($sql)) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

var_dump($conn->query($sql)); 
1

Documentationこう述べています。失敗した場合にFALSE

戻ります。成功したSELECT、SHOW、DESCRIBEまたはEXPLAINクエリの場合、mysqli_query()はmysqli_resultオブジェクトを返します。他の成功したクエリの場合、mysqli_query()はTRUEを返します。

ので、

$result= $db->query($sql); 

ような何かをして、より

関連する問題