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']));
编程语言
- Win10 PC创意者更新慢速版15048改进内容与已知问题
- 用纯CSS3实现网页中常见的小箭头
- 神舟笔记本问题集锦
- Bellnames常用操作说明
- 揭秘手机淘宝搜索排序的影响因素
- XHTML入门学习教程-网页Head和DTD
- 笔记本光驱保养常用知识
- hzhost虚拟主机系统致命漏洞
- 电脑无线网络出现红色叉叉无线网卡打不开的六
- 16项评比不得不看 机箱哪些功能最实用
- AI怎么绘制一个呲牙的qq表情-
- 红帽指点杆机械键盘 TEX Yoda上手体验测评
- 笔记本电脑保养常识有哪些-笔记本保养常识总结
- cdr怎么设计圆角矩形效果的图标-
- 在XSLT样式表中声明命名空间小结
- Fireworks教程-常用操作技巧总结