2016-04-29 14 views
0

こんにちは私は自分のデータベースに接続することができますが、私は0行を持っていると言います! 私はデータベースへの接続方法を変えましたが、それらのすべてが常に0行を返すので、データベースからのデータは表示されません。Mysqli結果は常に0を返します

$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT * FROM keys"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     echo "id: " . $row["id"]. " - Key: " . $row["key"]. " " . $row["used"]. "<br>"; 
    } 
} else { 
    echo "0 results"; 
} 
$conn->close(); 
?> 
+0

あなたが混合されている**オブジェクト指向**&**手続き**アプローチ。 –

+0

リンクしたページに2行が表示されます。ゼロではありません。 –

+1

私はHanky Pankyの助けを得ました、それは今働きます:D私は質問からリンクを削除しています:D –

答えて

4
SELECT * FROM keys 
      ^

KEYSので、クエリの実行に失敗し、何もデータが返されない、非常に少なくとも、それをエスケープし、reserved termです。

ベストオプションは、フィールド名を予約されていないものに変更することです。あなたはいくつかの行が私の結果であるなら、私それらを示すが、行が私の結果ではありませんならば、私の行数を示して言っている

に注意することが面白い

何か。要するに、クエリが失敗したときの行数の表示は全く意味がありません。これは、データベースドライバ

+0

バックティックを使うと助けになるかもしれません。 –

+0

これはエスケープするものです* :) –

+0

面白いメモに - はい私はそれが無意味であることを知っています。 –

3

keysによって返されたエラーメッセージを表示するには良い場所になりますと、それは

$sql = "SELECT * FROM `keys`"; 

あなたのクエリが失敗し、あなたのために

0 result alwaysを得たとして、バッククォートでなければなりませんMySQLでreserved keywordありますクエリを使用してエラーをチェック

if (!$conn->query("Your_QUERY")) { 
    printf("Errormessage: %s\n", $conn->error); 
} 

読むhttp://php.net/manual/en/mysqli.error.php

1

私はあなたが得る結果のためにこのコードを使用することがあると思う: -

$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 
$sql = "SELECT * FROM `keys`"; 
$result = mysqli_query($conn, $sql); 
if ($result->num_rows > 0) { 
// output data of each row 
while($row = $result->fetch_assoc()) { 
    echo "id: " . $row["id"]. " - Key: " . $row["key"]. " " . $row["used"]. "<br>"; 
} 
} else { 
echo "0 results"; 
echo "Rows:". mysqli_num_rows($result); 
} 
$conn->close(); 
+0

この回答はコードの仕組みを説明していませんが、良い答えはより有益であるべきです – ash

関連する問題