您的位置:首页技术文章

PDO的使用

【字号: 日期:2023-10-12 13:18:08浏览:44作者:馨心

//首先要连接mysql数据库$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);//如果你想连mssql://mssql:host=localhost;dbname=testdb//连pgsql://pgsql:host=localhost port=5432 dbname=testdb user=bruce password=mypass//连odbc(DSN)//odbc:testdb//连access://odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:db.mdb;Uid=Admin//还有oracle,sqlite,db2....

//执行个查询foreach ($dbh->query('SELECT * from FOO') as $row) { print_r($row); //这个结果和mysql_fetch_array差不多。PDOStatement::setFetchMode 可以调整。}

//另外还可以:$sth = $dbh->prepare('SELECT name, colour FROM fruit');$sth->execute();

//将整个记录集读到数组里:$result = $sth->fetchAll();print_r($result);//输出:Array([0] => Array ( [NAME] => pear [0] => pear [COLOUR] => green [1] => green )

[1] => Array ( [NAME] => watermelon [0] => watermelon [COLOUR] => pink [1] => pink )

)

//插入 / 删 / 更新数据:$count = $dbh->exec('DELETE FROM fruit WHERE colour = 'red'');//$count就是删除的条数。相当于mysql_affected_rows//也可用PDOStatement::rowCount

//偶忘了偶用啥数据库了。。。。if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') { echo 'Running on mysql; doing something mysql specific heren';}

//原来插入数据的时候要用mysql_escape_string,现在?print 'Unquoted string: $stringn';print 'Quoted string: ' . $conn->quote($string) . 'n';//得到:Unquoted string: NiceQuoted string: 'Nice'//你看现在连引号都自动加了。。。。//注意在不同的数据库中结果不同,比如有的' => '',有的' => ', => //现在没顾虑了,全自动。

//最后偶要关闭它了$conn = null;//但是!你可以保持连接:$dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2', array(PDO_ATTR_PERSISTENT => true));

//很简单的不是?

附:特别简单的特殊调用方法:$stmt = $dbh->prepare('SELECT * FROM REGISTRY where name = ?');if ($stmt->execute(array($_GET['name']))) { //你怕啥?自动quote! while ($row = $stmt->fetch()) {print_r($row); }}

也可以:$stmt->bindParam(1, $id);$stmt->bindParam(2, $_FILES['file']['type']);$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

这么好的功能,哪里可以找到?php5.1以上在扩展里,php5在pecl里,php4?你别想了,没有。

标签: PHP