欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql和PDO

謝彥文2年前8瀏覽0評論

MySQL是一款廣泛使用的開源數據庫管理系統,被廣泛應用于互聯網應用、數據分析、金融等領域。它具有高性能、穩定可靠、擴展性強等特點,被廣泛認可。

PDO(PHP數據對象)是PHP的一種數據庫擴展技術,用于與各種數據庫進行交互。PDO提供了一個通用的API,可以連接MySQL、SQLite、Oracle、PostgreSQL等多種數據庫。相較于MySQL擴展,PDO更加抽象化和靈活,可以同時支持多種數據庫。同時,PDO還提供了異常處理和預處理語句等功能。

// 使用MySQL擴展建立連接
$host = 'localhost';
$user = 'root';
$password = '123456';
$dbname = 'test';
$conn = mysqli_connect($host, $user, $password, $dbname);
if (!$conn) {
die('連接失敗: ' . mysqli_connect_error());
}
// 使用PDO建立連接
$dsn = 'mysql:host=localhost;dbname=test';
$username = 'root';
$password = '123456';
$options = array(
PDO::ATTR_ERRMODE =>PDO::ERRMODE_EXCEPTION
);
try {
$conn = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
echo '連接失敗: ' . $e->getMessage();
}

如上所示,使用MySQL擴展建立連接時,需要傳遞多個參數,并且需要手動檢查連接是否成功。而使用PDO建立連接時,只需要傳遞DSN(數據源名稱)、用戶名、密碼等簡單參數,且支持異常處理,代碼可讀性更高。

PDO還提供了預處理語句的支持,可以防止SQL注入攻擊,并提高運行效率。

// 使用MySQL擴展查詢數據
$username = mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
$sql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) >0) {
echo '登錄成功';
} else {
echo '用戶名或密碼錯誤';
}
// 使用PDO查詢數據
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username = :username AND password = :password";
$stmt = $conn->prepare($sql);
$stmt->execute(array(':username' =>$username, ':password' =>$password));
if ($stmt->rowCount() >0) {
echo '登錄成功';
} else {
echo '用戶名或密碼錯誤';
}

如上所示,使用MySQL擴展查詢數據時,需要使用mysqli_real_escape_string函數對輸入參數進行轉義,并把它們嵌入到SQL語句中。而使用PDO查詢數據時,可以使用占位符,通過prepare和execute方法來執行預處理語句,PDO會自動轉義參數并且避免SQL注入攻擊。