所以我開始在php中多做一些練習,並想創建一個面向對象的論壇。爲此我想有一個數據庫類等類php:數據庫類與PDO。我怎樣才能讓它變得更好?
<?php
class Database {
public $databaseConnection;
function __construct(){
$this->databaseConnection = new PDO('sqlite:test.sq3', 0, 0);
$this->databaseConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$params = NULL;
$pdoStatement = $this->databaseConnection->prepare('CREATE TABLE IF NOT EXISTS user(
id INTEGER PRIMARY KEY,
username VARCHAR(40) NOT NULL UNIQUE,
numberoflogins INTEGER DEFAULT 0,
bannedstatus BOOLEAN DEFAULT FALSE,
dateofjoining TIME
)');
$pdoStatement->execute(array_values((array) $params));
}
function query($sql, $params = NULL){
$s = $this->databaseConnection->prepare($sql);
$s->execute(array_values((array) $params));
return $s;
}
function insert($table, $data){
self::query("INSERT INTO $table(" . join(',', array_keys($data)) . ')VALUES('. str_repeat('?,', count($data)-1). '?)', $data);
return $this->databaseConnection->lastInsertId();
}
}
然後我做到這一點在同一個腳本:
$database = new Database();
$database->insert('user',array('id' => 0,
'username' => 'gulaschsuppe',
'numberoflogins' => 23,
'bannedstatus' => TRUE,
'dateofjoining' => time()));
$searchID = 0;
$userData = $database->query('SELECT username FROM user WHERE id = 0');
$username = $userData->fetchAll();
print_r(array_values($username));
?>
我只是想看看事情如何工作的。代碼中最重要的部分是類。我需要一點時間來弄清楚我如何獲得我想要的信息。這就是我得到的。
Array ([0] => Array ([username] => gulaschsuppe [0] => gulaschsuppe))
萬物的工作,但我不認爲這是獲得信息最好的方式。我得到一個數組與數組。此外,現在沒有驗證,但首先我想專注於函數查詢和插入。
那麼,你能解釋一下用戶名=> g的最後部分。 [0] => g。發生? 我想知道如何改善功能,請告訴我什麼時候我做錯了什麼。