mysql语句如何插入含单引号或反斜杠的值
```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']));
编程语言
- ThinkPad 笔记本如何调节LCD屏幕亮度
- Dreamweaver制作网页打开特效教程
- Win10 Mobile 10586升级后无限重启怎么办 硬重启帮您
- Win8系统提示音频设备有问题有一个或多个音频服
- Xbox One版Win10首个预览版9月份发布
- 如何在textarea文本输入区内实现换行
- Win10 Build 9901系统更新 预览版新版本下载
- McAfee Framework存在远程格式串处理漏洞
- Win10家庭版今日(7月30)正式在中国官方商城开卖
- Win10 Mobile预览版更新完10536.1000后才收到10536.100
- Win10 RS2更新了什么-Win10 RS2最终版本号1704首曝
- Windows7如何查看回收站对应的文件夹有哪些方法
- Win10让Charms栏回归桌面的方法教程
- 取消Windows XP系统开机启动画面的小技巧
- win8系统怎么下载安装USB百兆网卡?
- XP系统下磁盘空间变少了怎么办?XP系统磁盘空间