<?php
/* 通过数组值向预处理语句传递值 */
$sql = 'SELECT name, colour, caloriesFROM fruitWHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();
$sth->execute(array(':calories' => 175, ':colour' => 'yellow'));
$yellow = $sth->fetchAll();
?>
使用问号(?)参数来准备SQL语句
<?php
/* 通过数组值向预处理语句传递值 */
$sth = $dbh->prepare('SELECT name, colour, caloriesFROM fruitWHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));
$red = $sth->fetchAll();
$sth->execute(array(175, 'yellow'));
$yellow = $sth->fetchAll();
?>
http://www.runoob.com/php/pdo-prepare.html
其返回值是一个包含结果集中所有数据的二维数组。
下面我们通过 fetchAll()方法获取结果集中的所有行,并且通过 for 语句读取二维数组中的数据,完成数据库中数据的循环输出,具体步骤如下:
首先创建php文件,通过 PDO 连接MySQL 数据库,然后定义 SELECT查询语句,应用 prepare()和execute()方法执行查询操作,接着,通过fetchAll()方法返回结果集中的所有行,最后使用 for 语句完成结果集中所有数据的循环输出,代码如下:
<?php
header("Content-Type:text/html; charset=utf-8"); //设置页面的编码格式
$dbms = "mysql"; // 数据库的类型
$dbName ="php_cn"; //使用的数据库名称
$user = "root"; //使用的数据库用户名
$pwd = "root"; //使用的数据库密码
$host = "localhost"; //使用的主机名称
$dsn = "$dbms:host=$host;dbname=$dbName";
try{$pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo$query="select * from user";//需要执行的sql语句$res=$pdo->prepare($query);//准备查询语句$res->execute(); //执行查询语句,并返回结果集?><table border="1" width="500"><tr><td height="22" align="center" valign="middle">id</td><td height="22" align="center" valign="middle">用户名</td><td height="22" align="center" valign="middle">密码</td></tr><?php$result=$res->fetchAll(PDO::FETCH_ASSOC) ; // 获取结果集中的所有数据。for ($i=0;$i<count($result);$i++){ //循环读取二维数组中的数据。?><tr><td height="22" align="center" valign="middle"><?php echo $result[$i]['id'];?></td><td height="22" align="center" valign="middle"><?php echo $result[$i]['username'];?></td><td height="22" align="center" valign="middle"><?php echo $result[$i]['password'];?></td></tr>
<?php}
}catch(Exception $e){die("Error!:".$e->getMessage().'<br>');
}
?>
</table>
结果