Mysql转义函数;使用选择查询生成更新查询

标签 mysql

你好 我有一个开发服务器和生产服务器,两者都是相同的数据库。 表格产品将在两台服务器上进行编辑,但仅在不同的列上进行编辑 开发:id模型图片 生产:价格和缺货

我不想为此使用 php。

所以我为开发服务器创建了以下查询

SELECT CONCAT( "UPDATE `products` SET `products_id` = ", products_id, ",`products_model` = '", REPLACE( products_model, "'", "\'" ) , "',`products_image` = '", products_image, "' WHERE `products`.`products_id` = ", products_id, ";" )
FROM `products` 

此查询返回生产服务器的查询

UPDATE `products` SET `products_id` = 60,`products_model` = 'CT'257',`products_image` = 'ct_black01.jpg' WHERE `products`.`products_id` = 60;
UPDATE `products` SET `products_id` = 59,`products_model` = 'CT"255',`products_image` = 'ct_black01.jpg' WHERE `products`.`products_id` = 59;
UPDATE `products` SET `products_id` = 58,`products_model` = 'CT/242',`products_image` = 'ct_black01.jpg' WHERE `products`.`products_id` = 58;
UPDATE `products` SET `products_id` = 57,`products_model` = 'CT221',`products_image` = 'ct_black01.jpg' WHERE `products`.`products_id` = 57;

问题是当 product_model 包含 ' 或 "或两者时我需要转义字段 那么这个查询将失败

我如何在没有 php 的情况下执行 mysql_real_escape?

谢谢

最佳答案

怎么样

REPLACE(REPLACE(products_model, "'", "\\'"), '"', '\\"')

这将用转义的单引号和双引号替换所有的单引号和双引号。

关于Mysql转义函数;使用选择查询生成更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5967780/

相关文章:

mysql - 使用子查询删除行?

php - 从临时表中选择时出错

mysql - 我如何优化这个 mysql 查询?我使用 IN() 运算符

php - 检查其中1条记录字段是否填写

php - 我不断收到此错误警告 : Division by zero

mysql - Hibernate JPA不支持@TableGenerator的 "initialValue"元素吗?

具有 JOIN 和 GROUP BY 优化的 MySQL 查询。可能吗?

mysql - 如何根据特定列计算时间

MySql错误: Can't update table in stored function/trigger because it is already used by statement which invoked this stored function/trigger

php - 无法在数组元素中设置默认值 0