PHP PDO:“不在对象上下文[…]中使用$this”
我在使用下面的php代码时收到以下错误: [错误]70960:*410 FastCGI发送到stderr:PHP消息:PHP致命 错误:在中不在对象上下文中时使用$this /var/www/html_offline/core.php在第60行读取响应时 来自上游的标头,客户端:[……] 我已经试图解决这个问题,但找不到解决方案PHP PDO:“不在对象上下文[…]中使用$this”,php,Php,我在使用下面的php代码时收到以下错误: [错误]70960:*410 FastCGI发送到stderr:PHP消息:PHP致命 错误:在中不在对象上下文中时使用$this /var/www/html_offline/core.php在第60行读取响应时 来自上游的标头,客户端:[……] 我已经试图解决这个问题,但找不到解决方案 <?php class CORE { private $db_sqlite; private $db_mysql; function
<?php
class CORE {
private $db_sqlite;
private $db_mysql;
function __construct(){
$this->db_mysql = $this->get_MySQL();
$this->db_sqlite = $this->get_SQLite();
}
//
// MYSQL ADAPTER
//
function get_MySQL($db = null) {
if ($db == null) {
try {
$db = new PDO("mysql:host=ip_address:port;dbname=database;charset=utf8","user","password", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
} catch(PDOException $ex) {
return $db;
}
}
return $db;
}
//
// SQLITE ADAPTER
//
function get_SQLite($db = null) {
if ($db == null) {
try {
$db = new PDO("sqlite://var/www/html_offline/ip_throttling.db", null, null, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$db->query("CREATE TABLE IF NOT EXISTS storage (IP VARCHAR(255), TIME VARCHAR(255), ID VARCHAR(255))");
} catch(PDOException $ex) {
return $db;
}
}
return $db;
}
//
// IP QUERY RESTRICTION
//
function isThrottled($ip, $id) {
// SELECT stmt
$stmt = $this->db_sqlite->prepare('SELECT TIME FROM storage WHERE IP = :ip AND ID = :id');
$bind = array(
':ip' => $ip,
':id' => $id
);
$stmt->execute($bind);
if ($stmt->rowCount() > 0) {
$fetch = $stmt->fetch(PDO::FETCH_ASSOC);
if ($fetch['time'] <= strtotime('-30 seconds')) {
return true;
}
// DELETE stmt
$stmt = $this->db_sqlite->prepare('DELETE FROM storage WHERE IP = :ip AND ID = :id');
$stmt->execute($bind);
return false;
} else {
return false;
}
}
?>
如何调用类函数?第60行在哪里?@DobeLee第60行位于$stmt=$this->db_sqlite->prepare'SELECT TIME FROM storage where IP=:IP AND ID=:ID';在脚本中,您是否理解使用::意味着不创建类核心的实例?