Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Easy mysql查询if语句_Php_Mysql_If Statement_Row - Fatal编程技术网

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进行比较,这是不可能的请参见编辑