【问题标题】:How do you connect/retrieve data from a MYSQL database using objects in PHP?如何使用 PHP 中的对象从 MYSQL 数据库中连接/检索数据?
【发布时间】:2008-11-09 15:52:43
【问题描述】:

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

$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 对特定行做了一些有用的事情。

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

【问题讨论】:

    标签: php oop


    【解决方案1】:

    从 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

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

    还有 mysqli 扩展来做类似的任务,但我个人觉得 PDO 更干净。

    就 PHP 而言,整个过程并使用所有这些步骤可能是比其他任何方法更好的解决方案。

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

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-08-17
        • 1970-01-01
        • 1970-01-01
        • 2012-03-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多