在 PHP 中添加特殊字符
Add special character in PHP
我的数据库不存储带有特定字符的 $title。我能做什么?在我的 php 代码下方:
<?php
require "init.php";
$user_name = $_POST["user_name"];
$title = $_POST["title"];
$author = $_POST["author"];
$urlImage = $_POST["urlImage"];
preg_match("/^[\p{L}\p{N} '.-]+$/", $title);
$sql_query = "insert into user_info_book values('$user_name', '$title', '$author', '$urlImage');";
?>
提前致谢
$title = mysql_real_escape_string($title);
mysql_real_escape_string() 转义字符串中的特殊字符以用于 SQL 语句。
特殊字符可能会破坏您的 SQL 查询,因此要解决这个问题,请使用准备好的语句或使用 mysqli_real_escape_string()
函数。
mysqli_real_escape_string()
函数需要两个参数,第一个是连接对象,第二个是要转义的字符串,例子如下
$title = mysqli_real_escape_string($conn, $title);
但是,更好的方法是改用准备好的语句。下面给出了一个例子
if ($stmt = $conn->prepare("INSERT INTO user_info_book VALUES (?, ?, ?, ?)")) {
$stmt->bind_param("ssss", $user_name, $title, $author, $urlImage);
$stmt->execute();
$stmt->close();
} else {
// echo mysqli_error($DB_H); // Errors should only be shown in development
}
代码中的所有地方,$conn
是您已经创建的连接对象。
我的数据库不存储带有特定字符的 $title。我能做什么?在我的 php 代码下方:
<?php
require "init.php";
$user_name = $_POST["user_name"];
$title = $_POST["title"];
$author = $_POST["author"];
$urlImage = $_POST["urlImage"];
preg_match("/^[\p{L}\p{N} '.-]+$/", $title);
$sql_query = "insert into user_info_book values('$user_name', '$title', '$author', '$urlImage');";
?>
提前致谢
$title = mysql_real_escape_string($title);
mysql_real_escape_string() 转义字符串中的特殊字符以用于 SQL 语句。
特殊字符可能会破坏您的 SQL 查询,因此要解决这个问题,请使用准备好的语句或使用 mysqli_real_escape_string()
函数。
mysqli_real_escape_string()
函数需要两个参数,第一个是连接对象,第二个是要转义的字符串,例子如下
$title = mysqli_real_escape_string($conn, $title);
但是,更好的方法是改用准备好的语句。下面给出了一个例子
if ($stmt = $conn->prepare("INSERT INTO user_info_book VALUES (?, ?, ?, ?)")) {
$stmt->bind_param("ssss", $user_name, $title, $author, $urlImage);
$stmt->execute();
$stmt->close();
} else {
// echo mysqli_error($DB_H); // Errors should only be shown in development
}
代码中的所有地方,$conn
是您已经创建的连接对象。