如果你喜歡小老弟的這篇文章,那麼就請關注並轉發完成知識的傳遞!
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);
}
}