我的代码:
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”部落得到错误。这段代码中有什么错误?
谢谢。
编辑:请在我的代码上编辑错误的地方。
发布于 2013-01-09 22:42:10
您正在检查查询是否返回错误,而不是检查查询是否返回1(或更多...)行,这可能就是您想要的。返回0行的查询仍然是有效的查询。
除此之外,您应该切换到PDO (或mysqli)和带有绑定变量的预准备语句。
在PDO中你可能可以得到返回的行数rowCount(),查看手册了解更多关于如何重写你的代码到PDO的详细信息。
发布于 2013-01-09 22:51:22
我为你找到了这个: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-09 23:31:12
修改下面提到的代码以适合您的应用程序
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";https://stackoverflow.com/questions/14237661
复制相似问题