这是我的第一个问题,涉及尝试在Prestashop 1.6环境中获取MySql查询(我是MySql新手)作为PHP脚本。我基本上想要用另一个名为“id_product”的字段中的数据更新名为“reference”的“空白”字段,并为数据添加前缀......
为了测试查询,我首先通过phpadmin后端运行我的原始查询(使用reference =“”)以确保它有效并且确实:
UPDATE ps_product SET reference = CONCAT ("RPR - ",id_product + 10000) where reference = " ";
然后,我编辑了几条记录的“引用”字段,删除了数据,使它们为空。
然后我在根目录中创建了一个名为“greg.php”的php文件,其中包含以下内容:
<?php
$sql = 'UPDATE '._DB_PREFIX_.'product SET reference = CONCAT ("RPR - ",id_product + 10000) where reference = "";
if (!Db::getInstance()->execute($sql))
die('error!');
然后我使用以下命令从浏览器运行greg.php脚本:
mydomain.com.au/greg.php
它不起作用(即:它没有更新表中的引用字段)或显示错误消息或任何消息。
我想定期通过Cron运行这个脚本......
答案 0 :(得分:0)
你的空白字段可能不是一个空格(' '
) - 它可能是一个空字符串(''
)或null
。因此,您需要相应地更改where
子句:
UPDATE ps_product
SET reference = CONCAT ('RPR - ', id_product + 10000)
WHERE reference = '' OR reference IS NULL;