![](/img/trans.png)
[英]How to work with php classes and objects to communicate with mysql database - beginner in oop
[英]PHP OOP: How to get database rows as objects?
我可以在選擇單行時做到這一點,但是我不知道如何為多行數據做這件事。
對於單行,我只是實例化一個新對象,該對象在幕后執行許多操作,從而基本上從數據庫中生成一行作為我們的對象。
例:
$object = new Classname($param);
foreach($object->row as $key=>$value) {
echo $key.":".$value."\n";
}
//output
id:1
firstname:steve
lastname:took
etc...
這里任何聰明的人都能指出我正確的方向嗎?
注意:只是希望能夠為每一行創建一個對象,而不是一個具有嵌套數組的對象
編輯:抱歉$ object-> row是存儲數據庫中所選行的類的成員
如果我找到你的答案很簡單mysql_fetch_object
例:
while ($row = mysql_fetch_object($result)) {
echo $row->user_id;
echo $row->fullname;
}
這是一個例子
class users extends db {
public $users_id = 0;
public $users_group = 0;
public $users_firstname = 0;
public $users_lastname = 0;
public function open($id) {
if (is_numeric($id)) {
$sql = "SELECT * FROM users WHERE users_id = '$id'";
$res = parent::DB_SELECT($sql);
if (mysql_num_rows($res) <> 1) {
return 0;
}
} else {
$sql = "SELECT * FROM users " . $id;
$res = parent::DB_SELECT($sql);
if (mysql_num_rows($res) <= 0) {
return 0;
}
}
$data = array();
while ($row = mysql_fetch_array($res)) {
$this->users_id = $row['users_id'];
$this->users_group = $row['users_group'];
$this->users_firstname = $row['users_firstname'];
$this->users_lastname = $row['users_lastname'];
$data[] = (array) $this;
}
return $data;
}
public function setUsersId($users_id) { $this->users_id = addslashes($users_id); }
public function getUsersId() { return stripslashes($this->users_id); }
public function setUsersGroup($users_group) { $this->users_group = addslashes($users_group); }
public function getUsersGroup() { return stripslashes($this->users_group); }
public function setUsersFirstname($users_firstname) { $this->users_firstname = addslashes($users_firstname); }
public function getUsersFirstname() { return stripslashes($this->users_firstname); }
public function setUsersLastname($users_lastname) { $this->users_lastname = addslashes($users_lastname); }
public function getUsersLastname() { return stripslashes($this->users_lastname); }
}
你可以使用MySQLi。
// Connect $db = new mysqli('host', 'user', 'password', 'db'); // Query $users = $db->query('SELECT * from users'); // Loop while($user = $users->fetch_object()) { echo $users->field; } // Close $users->close(); $db->close();
你為什么不考慮使用ORM(對象關系映射器),如Doctrine或Propel? 我更喜歡Doctrine: http : //www.doctrine-project.org/享受! :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.