PHP Easy mysql查询if语句
我的代码:PHP Easy mysql查询if语句,php,mysql,if-statement,row,Php,Mysql,If Statement,Row,我的代码: 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”部落出错。这个代码有什么问题 多谢各位 编辑:请在我的
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”部落出错。这个代码有什么问题
多谢各位
编辑:请在我的代码上编辑错误。您检查的是查询是否返回了错误,而不是查询是否返回了1(或更多…)行,这可能是您想要的。返回0行的查询仍然是有效查询 除此之外,您应该切换到PDO(或mysqli)并使用绑定变量准备语句 在PDO中,您可能可以获得返回的行数,有关如何将代码重写为PDO的详细信息,请参阅手册。我为您找到了以下内容: 在这里,您可以学习如何使用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);
}
mysql\u-connect(SQL\u-SERVER、SQL\u-USER、SQL\u-PASS);
mysql\u选择数据库(SQL\u数据库);
$result=mysql_query(“从“.TB_PREFIX.”用户中选择id,其中tribe=2”);
$fetch=mysql\u fetch\u assoc($result);
如果(计数($fetch)
修改下面提到的代码以适合您的应用程序
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";
不要使用MySQL,请使用MySQLi或PDO和prepared StatementWhy?My database MySQL…@user1951205,以便将来的用户查看您的问题。如果您知道这一点,那就太好了。它们不再被维护,并且已经开始使用。请参阅?了解,并使用或-将帮助您决定使用哪一个。如果您选择PDO,@user1951205:Mark的意思是您不应该使用mysql_*命令,而应该使用PDO或mysqli工具来查询您的mMySQL数据库。mysql_*命令已经被弃用了一段时间。PDO和mysqli是使用mysql的更现代、更安全的接口。mysql_query不久将被弃用。我不知道我想要什么…对不起,我的英语不好,但我想要的只是如果你ser的tribe 2 get error…不需要mysqlis您的tribe列类型为int?或nvarchar?tribe列->tinyint(1)您的错误可能是您将字符串与int进行比较,这是不可能的请参见编辑