我有两个文件file1.php和database.php。我有一个班级' Connection'在database.php文件中。我将此函数称为将查询传递给类' bar'。但我得到两个错误:
1.Notice: Undefined variable: conn... on line 22
2.Fatal error: Cannot access empty property in.. on line 22
这些是我正在使用的代码。谢谢。
file1.php
require_once('database.php');
$c = new Connection();
$c->bar("Select id, firstname, lastname from users");
$c->execute();
database.php
class Connection{
public $conn;
public function __construct()
{
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "testing_pdo";
try {
$this->conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$this->conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$this->conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch (Exception $e) {
echo 'ERROR: ' . $e->getMessage();
}
}
public function bar($sql)
{
$this->conn->prepare($sql);
return $this->conn->execute();
}
}
答案 0 :(得分:0)
我终于成功了。我在这两个文件中做了一些改动。
database.php
class Connection{
private $servername = "localhost";
private $username = "root";
private $password = "";
private $dbname = "testing_pdo";
private $conn;
private $error;
private $stmt;
public function __construct()
{
try {
$this->conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$this->conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$this->conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch (Exception $e) {
$this->error = $e->getMessage();
}
}
public function bar($sql)
{
$this->stmt = $this->conn->prepare($sql);
}
public function resultset(){
$this->execute();
return $this->stmt->fetchAll(PDO::FETCH_ASSOC);
}
}
file1.php
include ('database.php');
$c = new Connection();
$c->bar("Select id, firstname, lastname from users");
$c->resultset();