如果你喜欢小老弟的这篇文章,那么就请关注并转发完成知识的传递!
1. PDO和MySQLi
PDO和MySQLi都是PHP中对数据库进行访问的方式。PDO是PHP数据对象,是一种轻量型的封装,较MySQLi更容易理解。两种方法各有不同,以下是两个具体的使用示例。
2. PDO登陆实例
<?php
// 用户类定义
class User {
private $username;
private $password;
public function __construct($username, $password) {
$this->username = $username;
$this->password = $password;
}
public function print() {
echo 'username: '.$this->username;
echo '<br>';
echo 'password: '.$this->password;
}
}
$username = '';
$password = '';
if(isset($_GET['username'])) {
$username = $_GET['username'];
}
if(isset($_GET['password'])) {
$password = $_GET['password'];
}
try {
// 创建PDO对象
$pdo = new PDO('mysql:host=127.0.0.1;dbname=db_88ys',
'huangwei',
'123456789');
// 要执行的SQL语句,利用:param_name这种形式进行占位
$sql = "select * from tb_user where
username=:username and password=:password";
// 预编译SQL,并指定参数以关联数组格式传入
$statement = $pdo -> prepare($sql,
array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)
);
// 传入参数,并执行PDO Statement 对象
$statement -> execute(array(':username' => $username,
':password' => $password));
// 从PDO Statement对象中拉取结果
$result = $statement -> fetchAll();
// 对结果进行判断,如果结果集中无数据,则登陆失败
if(count($result) == 0) {
echo "login failed"."<br>";
} else {
$user = new User($result[0]['username'], $result[0]['password']);
echo "<br>login success: <br>";
echo $user -> print();
}
} catch(PDOException $e) {
echo "Error: ".$e->getMessage()."<br>";
}
?>
3. MySQLi
<?php
$mysqli = new mysqli('127.0.0.1', 'huangwei', '123456789', 'db_88ys');
if($mysqli -> connect_errno) {
echo "Connected Failed : ".connect_error;
exit();
}
if (isset($_GET['count'])) {
$count = $_GET['count'];
$result = $mysqli -> query("select id, name, href from tb_movie limit $count", MYSQLI_USE_RESULT);
for($i = 0; $i < $count; $i++) {
$movies = mysqli_fetch_assoc($result);
var_dump($movies);
}
}
if (isset($_POST['count'])) {
$count = $_POST['count'];
$result = $mysqli -> query("select id, name, href from tb_movie limit $count", MYSQLI_USE_RESULT);
for($i = 0; $i < $count; $i++) {
$movies = mysqli_fetch_assoc($result);
var_dump($movies);
}
}