mysql语句如何插入含单引号或反斜杠的值

编程学习 2025-05-15 04:09www.dzhlxh.cn编程入门

```php

$servername = "你的服务器名"; // 请替换为实际值

$port = 3306; // MySQL默认端口号

$username = "你的用户名"; // 请替换为实际值

$password = "你的密码"; // 请替换为实际值

$dbname = "你的数据库名"; // 请替换为实际值

// 创建连接至MySQL数据库的连接对象

$conn = new mysqli($servername, $username, $password, $dbname, $port); // 确保端口号正确无误

// 检测连接是否成功建立

if ($conn->connect_error) {

die("连接失败:" . $conn->connect_error); // 输出错误信息并终止脚本执行

}

$item['title'] = 'happy valentine\'s day!'; // 使用转义字符处理单引号问题

var_dump($sql); // 输出构建的SQL语句以供调试和确认正确性

if ($conn->query($sql) === TRUE) {

} else {

```php

$item['title'] = json_encode([

'balbalbla' => '中文'

]);

$sql = sprintf("INSERT INTO activity (title) VALUES ('%s');", $item['title']);

```

我们预期的结果是数据库中存储的标题字段值为 `{"balbalbla":"\u4e2d\u6587"}`。实际情况却是,数据库中的值变成了 `{"balbalbla":"u4e2du6587"}`。为什么会这样呢?原因在于 SQL 中的反斜杠 `\` 被当作转义字符了。我们需要对 Unicode 中的反斜杠进行再次转义,以确保数据库中的存储是正确的。为此,我们可以使用 mysqli_real_escape_string 函数来确保字符串的安全性并避免转义问题。修改后的代码如下所示:

```php

$item['title'] = json_encode([

'balbalbla' => '中文'

]);

$sql = sprintf("INSERT INTO activity (title) VALUES ('%s');", mysqli_real_escape_string($conn, $item['title']));

Copyright © 2016-2025 www.dzhlxh.cn 金源码 版权所有 Power by

网站模板下载|网络推广|微博营销|seo优化|视频营销|网络营销|微信营销|网站建设|织梦模板|小程序模板