Php Joomla,在他们自己的组件中正确的转义

Php Joomla,在他们自己的组件中正确的转义,php,joomla,Php,Joomla,我已经为Joomla编写了一个自定义组件。这个RSS提要可以从不同的来源读取,并且应该存储在SQL数据库中 但是如何正确使用转义函数呢?这是我的密码: // Create a new query object. $query = $db->getQuery(true); // Insert columns. $columns = array('id', 'id_feedsource', 'title',

我已经为Joomla编写了一个自定义组件。这个RSS提要可以从不同的来源读取,并且应该存储在SQL数据库中

但是如何正确使用转义函数呢?这是我的密码:

// Create a new query object.
$query = $db->getQuery(true);

// Insert columns.
$columns = array('id',
                 'id_feedsource', 
                 'title', 
                 'link', 
                 'pubDate', 
                 'timePubDate', 
                 'guid', 
                 'description', 
                 'creator', 
                 'content' , 
                 'read', 
                 'smart', 
                 'demografie', 
                 'urbanisierung', 
                 'arbeitswelten', 
                 'konnektivitaet', 
                 'nano', 
                 'femaleshift', 
                 'energie', 
                 'bildung', 
                 'individualisierung', 
                 'public', 
                 'cache');

// Insert values.
$values = array('NULL',
                $db->quote($db->escape($value['source'])),
                $db->quote($db->escape($value['title'])),
                $db->quote($db->escape($value['link'])),
                $db->quote($db->escape($value['pubDate'])),
                $db->quote($value['timePubDate']),
                $db->quote($db->escape($value['guid'])),
                $db->quote($db->escape($value['description'])),
                $db->quote($db->escape($value['creator'])),
                $db->quote($db->escape($value['content'])),
                0,0,0,0,0,0,0,0,0,0,0,0,0);

// Prepare the insert query.
$query
    ->insert($db->quoteName('#__heka_rss_feeds'))
    ->columns($db->quoteName($columns))
    ->values(implode(',', $values));

// Set the query object and execute it.
$db->setQuery($query);
//echo $query->dump().'<br>';
$db->execute();
//创建一个新的查询对象。
$query=$db->getQuery(true);
//插入列。
$columns=数组('id',
“id_饲料源”,
“头衔”,
“链接”,
“发布日期”,
“timePubDate”,
“guid”,
“说明”,
“创造者”,
“内容”,
“读”,
“聪明”,
“民主化”,
“城市化”,
“arbeitswelten”,
“konnektivitaet”,
“纳米”,
“女性转变”,
“能源”,
“教化”,
“个人主义者”,
"公众",,
“缓存”);
//插入值。
$values=数组('NULL',
$db->quote($db->escape($value['source']),
$db->quote($db->escape($value['title']),
$db->quote($db->escape($value['link']),
$db->quote($db->escape($value['pubDate']),
$db->quote($value['timePubDate']),
$db->quote($db->escape($value['guid']),
$db->quote($db->escape($value['description']),
$db->quote($db->escape($value['creator']),
$db->quote($db->escape($value['content']),
0,0,0,0,0,0,0,0,0,0,0,0,0);
//准备插入查询。
$query
->插入($db->quoteName('.#uuheka_rss_feeds'))
->列($db->quoteName($columns))
->值(内爆(',',$values));
//设置查询对象并执行它。
$db->setQuery($query);
//echo$query->dump()。
; $db->execute();
现在加入个人捐款“\”。例如: 美国宇航局的费米太空望远镜增强了它的高能视野

发布时,这看起来不太好。因为要使用转义SQL注入,但它可能还不正确。
我做错了什么?

我相信$db->quote也会逃避这些值。因此,你将有两次逃脱的方式,你这样做。试一试

$values = array('NULL',
            $db->quote($value['source']),
            $db->quote($value['title']),
            $db->quote($value['link']), 
            ...
…这应该更有效。见文件