2016-04-09 19 views
0

次のコードを使用して、データベース内の3つのテーブルのエントリ数を取得しました。私はphpMyAdminでそれらを使用する場合、クエリは動作しますが、私はこのコードを実行するとき、私は得る:if(!$stmt)文によって生成されるSQL文の作成中にエラーが発生しました

Error creating SQL statement 

と私はそれが働いていない理由はわかりません。おかげで事前:)

<?php 
include 'connection.php'; 

$countArtists = $countAlbums = $countTracks = 0; 

/* Create queries to get counts from each table */ 
$sql = "SELECT COUNT(*) FROM artist;"; 
$sql .= "SELECT COUNT(*) FROM cd;"; 
$sql .= "SELECT COUNT(*) FROM tracks;"; 

$stmt = $conn->prepare($sql); 
if(!$stmt) 
{ 
    echo "Error creating SQL statement"; 
    return 1; 
} 

$stmt->execute(); 

$stmt->bind_result($countArtists, $countAlbums, $countTracks); 

echo "<li>Number of Artists: $countArtists</li><br>\n" . 
    "<li>Number of Albums: $countAlbums</li><br>\n" . 
    "<li>Number of Tracks: $countTracks</li><br>\n"; 
?> 

答えて

0

に私はあなたがこのような単一のクエリをしたいと思う:

$sql = "SELECT (SELECT COUNT(*) FROM artist) as countArtists, ". 
       "(SELECT COUNT(*) FROM cd) as countAlbums, ". 
       "(SELECT COUNT(*) FROM tracks) as countTracks"; 

3つの別々のクエリとは対照的に、これは、3つの列と1つのクエリです。

+0

2番目のクエリの後にコンマが見当たりませんでした。クエリを追加してもエラーはなくなりましたが、0が返されます。テーブルが空であるため、0にする必要があるトラックは1つだけです。 –

+0

すべてが0の問題を修正しました。 '$ stmt-> fetch();'を使うのを忘れました。助けてくれてありがとう :) –

関連する問題