我有这段代码:
$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 在...中给出。
答案 0 :(得分:3)
函数mysql_query在出错时返回FALSE。 您的SQL语句似乎不正确,不清楚是什么" IP"是一个列或一个表。
此外,如Script47所述:
警告此扩展在PHP 5.5.0中已弃用,已被删除 在PHP 7.0.0中。相反,MySQLi或PDO_MySQL扩展应该是 用过的。另请参阅MySQL:选择API指南和相关常见问题解答以获取更多信息 信息。此函数的替代方法包括:mysqli_query() PDO ::查询()
答案 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
}
}
}
?>