如何使用PHP中的对象从MYSQL数据库连接/检索数据?

时间:2008-11-09 15:52:44

标签: php oop

通常我使用标准方式连接和检索数据(为简单起见,删除了错误检查):

$db = mysql_select_db("dbname", mysql_connect("host","username","passord"));
$items = mysql_query("SELECT * FROM $db");

while($item = mysql_fetch_array($items)) {
    my_function($item[rowname]);
}

my_function在该特定行中执行一些有用的操作。

使用对象的等效代码是什么?

2 个答案:

答案 0 :(得分:3)

从5.1版开始,PHP随PDO驱动程序一起提供,它为预准备语句提供了一个类。

$dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password); //connect to the database
//each :keyword represents a parameter or value to be bound later
$query= $dbh->prepare('SELECT * FROM users WHERE id = :id AND password = :pass');

# Variables are set here.
$query->bindParam(':id', $id); // this is a pass by reference 
$query->bindValue(':pass', $pass); // this is a pass by value

$query->execute(); // query is run

// to get all the data at once
$res = $query->fetchall();
print_r($res);

请参阅PDO driver at php.net

请注意,这种方式(使用预准备语句)将自动转义所有需要的内容,并且是执行mysql查询的最安全的方法之一,只要您使用binbParam或bindValue。

还有mysqli扩展来执行类似的任务,但我个人认为PDO更清洁。

当涉及到PHP时,使用所有这些步骤可以提供更好的解决方案。

然后,您可以使用$query->fetchobject将数据作为对象检索。

答案 1 :(得分:2)

您可以使用mysql_fetch_object()

http://is2.php.net/manual/en/function.mysql-fetch-object.php