mysql - 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);
签入数据库后,它实际上已执行并成功运行。但是在前端,我被抛出了上面的错误。我正在使用下面的钩子来执行我的代码:
- hookActionCarrierProcess
我试过 $option = (int)pSQL(Tools::getValue('option')); 但它在保存时返回 0。
有任何想法吗?
解决方案
如果您的值是整数:您必须在 $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);
推荐阅读
- php - 选择最后插入的行 每 1 秒
- python - 大熊猫上的 SettingWithCopyWarning
- python-3.x - Google Cloud:选择正确的存储选项
- excel - 为多个复选框添加 VBA - 返回编译错误
- python - 张量有 NaN 值 - TensorFlow faster-rccn 训练错误
- algorithm - 使用 Master 方法求解递归关系 -> 当 n 为偶数时 T(n) = 2T(n/2) + n^2 并且当 n 为奇数时 T(n) = 2T(n/2) + n^3
- javascript - setInterval:为什么要传一个返回函数的函数
- postgresql - 用于查询所有结果的 Postgresql to_char() 函数
- c# - Js后用C#从网站获取信息
- javascript - 如何在 MERN Stack 中进行子域路由?