我有一个列表,其中包含我目前正在导入 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 中时,产品列表也显示得很仔细,但是当我去编辑产品时,标题输入字段(用于显示标题)从“符号开始删除标题。
这是一个可视化示例:
这里我们看到标题是完整的
这里我们看到标题在“.”之后被删掉了。
我可以确认这不是 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/