PHP mysqli real_escape_string() 函式
示例 - 面向物件風格
跳脫字元串中的特殊字元
<?php
$mysqli = new mysqli("localhost","my_user","my_password","my_db");
if ($mysqli -> connect_errno) {
echo "連線 MySQL 失敗: " . $mysqli -> connect_error;
exit();
}
// 轉義特殊字元(如果存在)
$firstname = $mysqli -> real_escape_string($_POST['firstname']);
$lastname = $mysqli -> real_escape_string($_POST['lastname']);
$age = $mysqli -> real_escape_string($_POST['age']);
$sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$firstname', '$lastname', '$age')";
if (!$mysqli -> query($sql)) {
printf("%d Row inserted.\n", $mysqli->affected_rows);
}
$mysqli -> close();
?>
請看底部的過程式風格示例。
定義和用法
real_escape_string() / mysqli_real_escape_string() 函式跳脫字元串中的特殊字元,以便在 SQL 查詢中使用,並考慮了當前連線的字元集。
此函式用於建立合法的 SQL 字串,該字串可用於 SQL 語句。假設我們有以下程式碼
<?php
$lastname = "D'Ore";
$sql="INSERT INTO Persons (LastName) VALUES ('$lastname')";
// 此查詢將失敗,因為我們沒有轉義 $lastname
if (!$mysqli -> query($sql)) {
printf("%d Row inserted.\n", $mysqli->affected_rows);
}
?>
語法
面向物件風格
$mysqli -> real_escape_string(escapestring)
過程式風格
mysqli_real_escape_string(connection, escapestring)
引數值
引數 | 描述 |
---|---|
connection | 必需。指定要使用的 MySQL 連線 |
escapestring | 必需。要轉義的字串。編碼的字元是 NUL (ASCII 0)、\n、\r、\、'、" 和 Control-Z。 |
技術詳情
返回值 | 返回轉義後的字串 |
---|---|
PHP 版本 | 5+ |
示例 - 過程式風格
跳脫字元串中的特殊字元
<?php
$con = mysqli_connect("localhost","my_user","my_password","my_db");
if (mysqli_connect_errno()) {
echo "連線 MySQL 失敗: " . mysqli_connect_error();
exit();
}
// 轉義特殊字元(如果存在)
$firstname = mysqli_real_escape_string($con, $_POST['firstname']);
$lastname = mysqli_real_escape_string($con, $_POST['lastname']);
$age = mysqli_real_escape_string($con, $_POST['age']);
$sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$firstname', '$lastname', '$age')";
if (!mysqli_query($con, $sql)) {
printf("%d Row inserted.\n", mysqli_affected_rows($con));
}
mysqli_close($con);
?>
❮ PHP MySQLi 參考