php - 在 MySQL 中使用引号

标签 php mysql sql opencart

我有一个列表,其中包含我目前正在导入 OpenCart 的 1000 种产品。一些产品名称包含引号以表示英寸(例如 5")。

我已使用此查询成功导入了所有这些产品:

$data['name'] = mysql_escape_string($data['name']);
$sql = "INSERT INTO ".DB_PREFIX."product-description SET language_id = '1', name = '".$data['name']."'";
$query = mysql_query($sql);

当我在 OpenCart 中时,产品列表也显示得很仔细,但是当我去编辑产品时,标题输入字段(用于显示标题)从“符号开始删除标题。

这是一个可视化示例: enter image description here

这里我们看到标题是完整的 enter image description here

这里我们看到标题在“.”之后被删掉了。

我可以确认这不是 OpenCart 编码错误,因为如果我使用 "从界面手动插入产品,它工作正常。错误一定在我的查询中。

如果我的查询有问题,是否有一个查询可以让我更新所有产品而不是重新插入它们?

最佳答案

openCart 的设计使其在存储数据之前将要存储在数据库中的任何数据中的所有 HTML 转义。所以你只需要修改:

$data['name'] = mysql_escape_string($data['name']);

到:

$data['name'] = mysql_escape_string(htmlspecialchars($data['name'], ENT_QUOTES));

关于php - 在 MySQL 中使用引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13257360/

相关文章:

php - 我可以使用两个 where 子句,比如 "SELECT * FROM table WHERE something and something"吗?

PHP:将日期转换为本地主机上的单词

java - JDBC - 如何在 MySQL 数据库中插入和检索泰米尔语值

mysql - PHP MySQL 选择 2 列,其中 1 列

java - MYSQL ADDTIME 方法给出异常 : Java. lang.string 无法转换为时间戳

php - $_SESSION 没有设置?

php - 似乎无法使 mysqli_insert_id 工作

php - Symfony2 错误的实例通过 Twig 扩展传递

mysql查询是否区分大小写?

php - MYSQL 单字段内容列表