mysql num行修复PHP

时间:2015-10-13 21:47:42

标签: php mysql

我有这段代码:

$ip_adresa = $_SERVER['REMOTE_ADDR'];
$query = mysql_query("SELECT * FROM IP WHERE IP='$ip_adresa'");

if(mysql_num_rows($query) > 0) {
    echo 'Do something';
} else {
    echo 'Do something';
}

我有错误

  

警告:mysql_num_rows()要求参数1为resource,boolean   在...中给出。

2 个答案:

答案 0 :(得分:3)

函数mysql_query在出错时返回FALSE。 您的SQL语句似乎不正确,不清楚是什么" IP"是一个列或一个表。

此外,如Script47所述:

  

警告此扩展在PHP 5.5.0中已弃用,已被删除   在PHP 7.0.0中。相反,MySQLi或PDO_MySQL扩展应该是   用过的。另请参阅MySQL:选择API指南和相关常见问题解答以获取更多信息   信息。此函数的替代方法包括:mysqli_query()   PDO ::查询()

http://php.net/manual/en/function.mysql-query.php

答案 1 :(得分:0)

首先,在php 5.3或5.2中,不推荐使用mysql_ *。所以使用它是个坏主意。

您应该使用PDO。为何选择PDO? mysqli_ *可能比PDO更快,但PDO允许访问使用各种数据库。大多数框架都使用PDO,因为这样他们可以非常轻松地让开发人员访问php中的12个数据库。

如果您使用PDO,您的查询将如下所示:

Public Sub Ryan_C()

    Dim rCrit As Range, rData As Range

    With Sheets("Sheet1").[a1]
        Set rData = .Resize(.Item(.Parent.Rows.Count).End(xlUp).Row, .Item(, .Parent.Columns.Count).End(xlToLeft).Column)
    End With

    With Sheets("Sheet2").[a1]
        Set rCrit = .Resize(.Item(.Parent.Rows.Count).End(xlUp).Row)
    End With

    rData.AdvancedFilter xlFilterInPlace, rCrit

End Sub
  

//使用命名空间是一个很好的选择,但我在一般情况下这样做   你的script.php

include_once'connection_class.php';

<?php


/**
*  Class description
*/
Class Connection {

private $host;
private $host_user;
private $host_pass;
private $db_name;
public  $db;

    function __construct(){
        # code...

        try {

        $this->host             = 'localhost';
        $this->host_user        = 'root';
        $this->host_pass        = '';
        $this->db_name          = 'your_database';

        //Main Connection script
        $this->db = new PDO('mysql:host='.$this->host.'; dbname='.$this->db_name, $this->host_user, $this->host_pass);
        $this->db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
        $this->db->setAttribute( PDO::ATTR_EMULATE_PREPARES, 0 );
        $this->db->exec("SET CHARACTER SET utf8");

        } catch (PDOException $err){

            echo "harmless error message if the connection fails";
            $err->getMessage() . "<br/>";
            die();  //  terminate connection

        }

    }


}



?>