更新查询在php-my-admin中有效,但在php脚本中无效


Update query works in php my admin but not in php script

我试图创建的脚本有问题,它更新了joomla cms网站中的一些参数。如果我在phpmyadmin中进行更新,然后按go,它会显示:

    UPDATE  `websit52_rcsetch`.`u5b0y_modules` SET  `params` = '{"moduleclass_sfx":"demovideos","youtube_id":"XM0aLFaij8I3","width":"300","height":"200","responsive":"1","cache":"1","cache_time":"900","cachemode":"itemid"}' WHERE `u5b0y_modules`.`id` =192;

所以我想,好吧,我只是复制那个查询,把它放进php,然后把params改成我需要的。

所以最后是:

    mysql_query("UPDATE  `websit52_rcsetch`.`u5b0y_modules` SET  `params` = '{"moduleclass_sfx":"demovideos","youtube_id":"XM0aLFaij8I3","width":"300","height":"200","responsive":"1","cache":"1","cache_time":"900","cachemode":"itemid"}' WHERE `u5b0y_modules`.`id` =192;")or die(mysql_error());

现在问题出在Dreamweaver的那一行,我在那一行收到了一个红色错误警告,但我所做的只是将查询复制到mysqli查询中,所以不明白为什么它不起作用?。它说有一个语法错误,我认为这是由params使用的双引号引起的,但我不确定我是否可以在不影响查询的情况下转义这些错误?,还是有其他原因导致了问题?。

mysql_query("UPDATE  `websit52_rcsetch`.`u5b0y_modules` SET  `params` = '{'"moduleclass_sfx'":'"demovideos'",'"youtube_id'":'"XM0aLFaij8I3'",'"width'":'"300",'"height":'"200'",'"responsive'":'"1'",'"cache'":'"1'",'"cache_time'":'"900'",'"cachemode'":'"itemid'"}' WHERE `u5b0y_modules`.`id` =192;")or die(mysql_error());

在Joomla synthax:

$db = JFactory::getDbo();
$query = $db->getQuery(true);
// Fields to update.
$fields = array(
    $db->quoteName('params') . ' = ' . $db->quote('{"moduleclass_sfx":"demovideos","youtube_id":"XM0aLFaij8I3","width":"300","height":"200","responsive":"1","cache":"1","cache_time":"900","cachemode":"itemid"}')
);
// Conditions for which records should be updated.
$conditions = array(
    $db->quoteName('id') . ' = 192'
);
$query->update($db->quoteName('#__modules'))->set($fields)->where($conditions);
$db->setQuery($query);
$result = $db->query();