-1

以下函数旨在检查此表中的该行是否存在。我知道它还没有无论我$row还是!$rowif 函数它什么也不做。

function four_zero_four($name){
    $four_zero_four = mysql_query("SELECT * FROM pages WHERE name = '$name'"); 

    while($row = mysql_fetch_array($four_zero_four)) { 
      echo 'no'; die(); 
    }
};

$name是该行中的名称字段,并且在其他功能中正常工作。

4

3 回答 3

1

检查行是否存在的另一种方法是使用 mysql_result 函数和COUNT函数,如下所示:

$query = mysql_query("SELECT COUNT(1) FROM `table` WHERE `field` = 'something'");
$result = mysql_result($query, 0);

现在打印出$result变量时,您将看到查询实际返回的行数。这通常比使用mysql_num_rows.

于 2012-06-18T14:50:45.040 回答
0

我不确定我是否理解逻辑,您不是在打印“否”吗?die() 当找到一行时,而不是现在找到行时?无论哪种方式,这都是我要检查的方式:

function four_zero_four($name){
    $four_zero_four = mysql_query("SELECT * FROM pages WHERE name = '$name'"); 

    if (mysql_num_rows($four_zero_four) == 0) {
        // ROW DOES NOT EXIST
    } else {
        // ROW EXISTS
    }
};
于 2012-06-18T14:49:09.310 回答
0

您的代码不起作用,因为如果您的查询没有返回任何行,它甚至不会被执行。

改用mysql_num_rows()

$count = mysql_num_rows($four_zero_four);

if($count <= 0){
    die("no rows in this table!");
}

此外,您可能应该考虑使用 MYSQLi 命令而不是旧的mysql_query()实现和SELECT *,因为它们已被弃用。

于 2012-06-18T14:49:20.937 回答