你好我已經做了一個快速代碼插入名稱到數據庫中。OOP錯誤調用一個非對象的成員函數insertName()
這是數據庫連接類:
(我隱藏密碼等,基本上我在上面定義它們)
class Database
{
private $pdo;
private $query;
public function __construct()
{
try
{
$this->pdo = new PDO('mysql:host='.MYSQL_HOST.';dbname=oop', MYSQL_USER, MYSQL_PASSWORD);
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo 'Sucessfully connected to MySQL server!';
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
public function query($name)
{
$this->query = $this->pdo->prepare("INSERT INTO user (name) VALUES (:name)");
$this->query->bindValue(":name", $name);
$this->query->execute();
echo 'Sucessfully send!';
}
}
這是我基本上使用的查詢和處理類他們來自:
class System
{
private $Database;
public function __construct(Database $Database = null)
{
$this->Database = $Database;
}
public function insertName($name)
{
if ($this->db != null)
{
$this->db->query($name);
}
}
}
這是config.php文件
include("system.class.php");
include("db.class.php");
$system = new System($Database);
$db = new Database();
這是index.php文件
<?php
include("config.php");
?>
<html>
<form action="" method="post">
<input type="text" name="name">
<input type="submit">
</form>
<?php
if (isset($_POST) && !empty($_POST['name']))
{
$Database->insertName($_POST['name']);
echo 'Scessfuly inserted!';
}
?>
</html>
問題:
當發送數據(submiting形式之後)我得到以下錯誤:
致命錯誤:調用第17行中的C:\ xampp \ htdocs \ oop \ index.php中的非對象上的成員函數insertName()
我做錯了什麼?這是第17行:
$Database->insertName($_POST['name']);
我怎樣才能解決這個問題,什麼問題呢?
Thnaks。
調用未定義的方法數據庫:: insertName()在C:
改變它從$分貝到類我得到這個的實際名稱後\ XAMPP \ htdocs中\接力\的index.php上線17
編輯:
if (isset($_POST) && !empty($_POST['name']))
{
$system->insertName($_POST['name']);
echo 'Scessfuly inserted!';
}
class System
{
private $Database;
public function __construct(Database $Database = null)
{
$this->Database = $Database;
}
public function insertName($name)
{
if ($this->Database != null)
{
$this->Database->query($name);
}
}
}
'$ DB-> insertName($ _ POST [ '名']);'用這個,然後告訴我。 –
@GauravVashishtha'$ Db'!='$ db'。 – bwoebi
@bwoebi你說的是什麼? –