You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL UPDATE语句含单引号导致脚本报错求助

解决SQL UPDATE语句含单引号报错的问题

方法1:转义单引号

在SQL语法里,字符串边界由单引号标识,要在字符串内容里包含单引号,需用两个连续单引号替代单个单引号。

举个实际例子:
如果要更新的字段值是O'Neil,对应的UPDATE语句应写成:

UPDATE users SET name = 'O''Neil' WHERE id = 1;

数据库会自动将连续的两个单引号解析为字符串内的一个单引号,不会触发语法错误。

方法2:使用参数化查询(推荐)

这是更安全、更规范的解决方案,既能避免单引号转义的麻烦,还能防范SQL注入风险。不同编程语言的实现示例如下:

Python(MySQLdb)

import MySQLdb
db = MySQLdb.connect(host="localhost", user="your_user", passwd="your_pass", db="your_db")
cursor = db.cursor()

target_value = "O'Neil"
cursor.execute("UPDATE users SET name = %s WHERE id = %s", (target_value, 1))
db.commit()

Java(JDBC)

String updateSql = "UPDATE users SET name = ? WHERE id = ?";
PreparedStatement pstmt = connection.prepareStatement(updateSql);
pstmt.setString(1, "O'Neil");
pstmt.setInt(2, 1);
pstmt.executeUpdate();

PHP(PDO)

$pdo = new PDO('mysql:host=localhost;dbname=your_db', 'your_user', 'your_pass');
$target_value = "O'Neil";
$stmt = $pdo->prepare("UPDATE users SET name = ? WHERE id = ?");
$stmt->execute([$target_value, 1]);

参数化查询会自动处理字符串中的特殊字符,无需手动转义,是生产环境的首选方案。

内容的提问来源于stack exchange,提问作者pedroisp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 13:00:49