doufei2355
2008-11-09 15:52 阅读 60
已采纳

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

Generally I connect and retrieve data using the standard way (error checking removed for simplicity):

$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]);
}

Where my_function does some useful things witht that particular row.

What is the equivalent code using objects?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    drbmhd9583 drbmhd9583 2008-11-09 16:18

    Since version 5.1, PHP is shipped with the PDO driver, which gives a class for prepared statements.

    $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);
    

    see PDO driver at php.net

    Note that this way (with prepared statements) will automatically escape all that needs to be and is one of the safest ways to execute mysql queries, as long as you use binbParam or bindValue.

    There is also the mysqli extension to do a similar task, but I personally find PDO to be cleaner.

    What going this whole way around and using all these steps gives you is possibly a better solution than anything else when it comes to PHP.

    You can then use $query->fetchobject to retrieve your data as an object.

    点赞 评论 复制链接分享
  • dongmo1708 dongmo1708 2008-11-09 16:14
    点赞 评论 复制链接分享

相关推荐