0

私のコード:

mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS);
mysql_select_db(SQL_DB);
$result = mysql_query("SELECT id FROM ".TB_PREFIX."users WHERE tribe = '2'");
if (!$result) {
die("Tribe Error");
}

このコードでは、すべてのユーザー トライブでエラーが発生します。しかし、私は '2' tribe get error だけが欲しいです。このコードのどこが間違っていますか?

ありがとうございました。

編集:私のコードで何が間違っているかを編集してください。

4

3 に答える 3

0

PHP公式サイトのMysqli

アプリケーションに合わせて、以下のコードを変更してください

mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS);
mysql_select_db(SQL_DB);
$result = mysql_query("SELECT id FROM ".TB_PREFIX."users WHERE tribe = 2") or die(mysql_error());
$fetch = mysql_num_rows($result);
if ($fetch > 0) {
    while($dets = mysql_fetch_assoc($result)){
        //displaying all info about current record
        var_dump($dets);
    }
}
else
    echo "No records";
于 2013-01-09T15:31:12.433 に答える
0

私はあなたのためにこれを見つけました: http://php.net/manual/en/mysqli.query.php

ここでは、mysqli の使用方法を学習できます。

そして、この下のコードは、あなたが所有するものに変更することができます

編集:これは正しい方法ではありませんが、これを試してください

mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS);
mysql_select_db(SQL_DB);
$result = mysql_query("SELECT id FROM ".TB_PREFIX."users WHERE tribe = 2");
$fetch = mysql_fetch_assoc($result);
if (count($fetch)<1) {
if (!$result) {
die("Tribe Error");
}
else{
var_dump($fetch);
}
于 2013-01-09T14:51:22.177 に答える
0

クエリが 1 (またはそれ以上...) 行を返したかどうかではなく、クエリがエラーを返したかどうかを確認しています。これはおそらくあなたが望むものです。0 行を返すクエリは、引き続き有効なクエリです。

それとは別に、PDO (または mysqli) に切り替えて、変数がバインドされた準備済みステートメントを使用する必要があります。

PDO では、おそらく返された行数を取得できrowCount()ます。コードを PDO に書き換える方法の詳細については、マニュアルを確認してください。

于 2013-01-09T14:42:10.323 に答える