首页 > 解决方案 > Prestashop 1.7 - 更新成功执行但前端返回错误

问题描述

我正在尝试执行 SQL 查询,但返回以下错误:

您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以获取在第 1 行的 '' 附近使用的正确语法

$option = Tools::getValue('option');

$sql = 'INSERT INTO `'._DB_PREFIX_.'slot` VALUES ('.(int)$params['cart']->id.', '.$option.') ON DUPLICATE KEY UPDATE id_slot='.$option;
Db::getInstance()->execute($sql);

签入数据库后,它实际上已执行并成功运行。但是在前端,我被抛出了上面的错误。我正在使用下面的钩子来执行我的代码:

我试过 $option = (int)pSQL(Tools::getValue('option')); 但它在保存时返回 0。

有任何想法吗?

标签: mysqldatabaseprestashopprestashop-1.7

解决方案


如果您的值是整数:您必须在 $option 之前使用 (int)

如果您的值是字符串:

$option = Tools::getValue('option');

$sql = 'INSERT INTO `'._DB_PREFIX_.'slot` VALUES ('.(int)$params['cart']->id.', "'.pSQL($option).'") ON DUPLICATE KEY UPDATE id_slot='.$option;
Db::getInstance()->execute($sql);

推荐阅读