PDO操作数据库
1、连接
$dsn="mysql:host=localhost;dbname=test"; try{ $db=new PDO($dsn,'root','root'); }catch(PDOException $e){ die('error:'.$e); }
$dsn = "mysql:host=localhost;dbname=test";
就是构造我们的DSN(数据源),看看里面的信息包括:数据库类型是mysql,主机地址是localhost,数据库名称是test。
$db = new PDO($dsn, 'root', 'root');
初始化一个PDO对象,构造函数的参数第一个就是我们的数据源,第二个是连接数据库服务器的用户,第三个参数是密码
2、操作
- 获取结果集的第一列:$res=$db->query("select * from user"); $rows=$res->fetchAll( PDO :: FETCH_COLUMN , 0 );
- 获取结果集内的所有数据:$res=$db->query("select * from user"); $rows=$res->fetchAll( PDO :: FETCH_ASSOC );
PDO :: FETCH_ASSOC -->以索引数组形式获取结果集
PDO :: FETCH_NUM -->关联数组
PDO :: FETCH_BOTH -->两者都有,默认值
-
获取第一行记录的第一个字段值:$res=$db->query("select * from user"); $col = $rs->fetchColumn(); fetchColumn()参数为空默认取第一列 一般使用fetchColumn()来进行count统计或者单字段的记录操作如:$rs = $db->query("SELECT COUNT(*) FROM foo");$col=$res->fetchColumn();
- 循环输出结果集:foreach($db->query("select * from user where name='name8'") as $row){ var_dump($row);
- 获取结果集记录数:
$sql1 = "select * from user where username ='$name'"; $res = $db->query($sql1); $num = $res->rowCount();
3、PDO预处理——prepare
- 查询
$stmt=$db->prepare("select * from user where name=?"); if($stmt->execute(array('name8'))){ while($row=$stmt->fetch()){ var_dump($row); } }
- 插入
$stmt=$db->prepare("insert into user(name,pass) values(?,?)"); if($stmt->execute(array('sa1',666))){ echo '插入成功'; echo $db->lastinsertid(); }