$dbms = 'mysql'; //数据库类型 Oracle 用ODI,对于开发者来说,使用不同的数据库,只要改这个,不用记住那么多的函数了$host = 'locahost'; //数据库主机名$dbName = 'dbname'; //使用的数据库$user = 'dbusername'; //数据库连接用户名$pass = 'password'; //对应的密码$dsn = "$dbms:host=$host;dbname=$dbName";try { $dbh = new PDO($dsn, $user, $pass); //初始化一个PDO对象,就是创建了数据库连接对象$dbh// echo "ok";/*你还可以进行一次搜索操作foreach ($dbh->query(‘SELECT * from FOO’) as $row) {print_r($row); //你可以用 echo($GLOBAL); 来看到这些值}*/$dbh = null;} catch (PDOException $e) { die ("Error!: " . $e->getMessage() . "");}//默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT => true) 变成这样:$db = new PDO($dsn, $user, $pass);$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); //设置属性//$rs = $db->query("SELECT * FROM oto_task_clerk_coupon");//$rs->setFetchMode(PDO::FETCH_ASSOC);//$result_arr = $rs->fetchAll();$rs = $db->query("update oto_task_clerk_coupon set award = 10 where user_name = 'fedde' ");$res = $rs->rowCount();//$result_arr = $rs->fetchAll();print_r($res);
简单的总结一下上面的操作:
查询操作主要是PDO::query()、PDO::exec()、PDO::prepare()。
PDO::query()主要是用于有记录结果返回的操作,特别是 SELECT操作,
PDO::exec()主要是针对没有结果集合返回的操作,比如INSERT、UPDATE、DELETE等操作,它返回的结果是当前操作影响的列数。
PDO::prepare()主要是预处理操作,需要通过$rs->execute()来执行预处理里面的SQL语句,这个方法可以绑定参数,功能比较强大,不是本文能够简单说明白的,大家可以参考手册和其他文档。
获取结果集操作主要是:PDOStatement::fetchColumn()、PDOStatement::fetch()、PDOStatement::fetchALL()。
PDOStatement::fetchColumn() 是获取结果指定第一条记录的某个字段,缺省是第一个字段。
PDOStatement::fetch() 是用来获取一条记录,
PDOStatement::fetchAll()是获取所有记录集到一个中,获取结果可以通过PDOStatement::setFetchMode来设置需要结果集合的类型。
另外有两个周边的操作,一个是PDO::lastInsertId()和PDOStatement::rowCount()。PDO::lastInsertId()是返回上次插入操作,主键列类型是自增的最后的自增ID。
PDOStatement::rowCount()主要是用于PDO::query()和PDO::prepare()进行DELETE、INSERT、UPDATE操作影响的结果集,对PDO::exec()方法和SELECT操作无效。