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'部落出错。这段代码有什么问题?

谢谢你。

编辑:请编辑我的代码有什么问题,拜托。

4

3 回答 3

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 回答
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 回答