2011-09-17 18 views
0

私はPHPとmySQLの関数を一日中作成しています。私がプロジェクトの最も単純な部分を書いていたとき、私は壁に衝突しました。my SQLのクエリが失敗しても、mySQLエラーは返されません

機能は、単にデータベース内にあるどのように多くのエントリカウントし、その数を返す必要があります(もっと簡単な方法があれば、これは私の最初のPHP + mysqlのプロジェクトで、私に知らせてください)

ここでは、コードです:

function quoteCount(){ 
    global $db; 
    $totalQuoteNum = array(); 
    $query = "SELECT * FROM Quotes"; 
    $result_set = mysqli_query($db, $query) 
    or die ("Query $query failed ".mysqli_error($db)); //fails here 
    $totalQuoteNum = mysql_num_rows($result_set) 
    or die ('couldnt count rows'.mysqli_error($db)); 
    echo 'COUNTED EVERYTHING!!!'; 
    return $totalQuoteNum; 
}; 

ここでdieステートメントが印刷されると、文字列は取得されますが、mysqliエラーは取得されません。

物事は私が試したし、除外している:

  1. $ DBは
  2. データベースが接続されていた場合、私は確信して波平、私は、この関数の内部接続を追加し、
  3. クエリは、MySQLで動作し正確です何もない。

私が見ていることから、それはうまくいくはずで、私には何の誤りも与えないからです。助けてください!

+1

'var_dump($ db);' –

+2

の出力を投稿する 'SELECT count(*)FROM Quotes'を使って行数を数えたい場合は、もっと効率的です。 –

+0

@jasonの出力は次のとおりです:string(7) "quoteit" 、quoteitは私のデータベースの名前です。 – jonshariat

答えて

1

コメントに基づいて、$dbがデータベース名であるように見えます。

mysqli_query()のような機能は、単にデータベース名ではなくデータベースリンク(リソース)を必要とします。

このリソースはconstructing a new mysqli objectによって作成されました。手順スタイルに従って、mysqli_connect()を使用してください。

+0

Aha!あなたは正しかった、私は戻って私の接続機能にしたいとグローバル私はデータベースを選択されていないエラーを取得している今私は$ dbのリンクを取得しています。私はここでそれを理解できると確信しています。 – jonshariat

+0

はい、この関数で使用している*グローバル*変数を更新する必要があります。接続したようですが、 'mysqli_select_db()'を呼び出していません。 –

+0

私は選択に問題があります: – jonshariat

関連する問題