PHP mySQL 404 function


PHP mySQL 404 function

以下函数旨在检查此表中的此行是否存在。我知道,无论我$row还是!$row if 函数,它不执行任何操作。

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 是行中的名称字段,在其他函数中正常工作。

检查行是否存在的另一种方法是将 mysql_result 函数与 COUNT 函数结合使用:

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

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

我不确定我是否理解逻辑,你不是打印"no"吗; 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
    }
};

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

请改用mysql_num_rows()

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

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