【问题标题】:Issue with Mysql_num_rows php/mysqlMysql_num_rows php/mysql 的问题
【发布时间】:2014-09-12 04:50:19
【问题描述】:

我正在尝试使电子邮件验证正常工作。所以我的 PHP 代码正在触发一个查询,如果它有任何行与匹配的电子邮件,则该查询应该返回。如果返回 1 行,则返回一条错误消息,我在代码中的其他位置将我的有效布尔值设置为 false。

但是,我收到此错误“警告:mysql_num_rows() 期望参数 1 是资源,给定的对象”

我认为我使用 mysql_num_rows() 错误,但我是 php/mysql 的新手 :( 我似乎无法弄清楚。

这是我的代码的相关部分。

$conn = @mysqli_connect("server","user","pass","database");

if (!$conn) {
    // Displays an error message
    echo "<p>Database connection failure</p>";

////

        $sql_table="Customer";
        $query="SELECT * FROM $sql_table WHERE EMAIL = '$email'";
        $result = mysqli_query($conn, $query);

            if (mysql_num_rows($result) >= 1) { //<-- Offending line

                                $takenErr = "Email already taken ";
                                $valid = false; }

        if (!$result) {
            echo "<p> something is wrong with ", $query, "<p>";
            }

谢谢你们! :)。

【问题讨论】:

  • 存在两个不同的扩展名 mysqli_* 和 mysql_。你正在尝试混合它。

标签: php mysql


【解决方案1】:

你可以使用

$row_cnt = $result-&gt;num_rows;

mysqli_num_rows($result);

您正在使用mysqli 驱动程序,因此请始终使用它。

【讨论】:

  • 添加 mysqli 修复它:)。
  • 太好了,很高兴它有帮助:D
【解决方案2】:

您正在混合使用 mysqli_* 和 mysql_* 函数。

试试这个:

if (mysqli_num_rows($result) > 0) { 

    $takenErr = "Email already taken ";
    $valid = false; 

}

欲了解更多信息,请阅读此mysqli_*

【讨论】:

    猜你喜欢
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 2010-10-26
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多