首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表达式引擎使用数据库类编写查询

表达式引擎使用数据库类编写查询
EN

Stack Overflow用户
提问于 2012-03-25 02:37:43
回答 1查看 920关注 0票数 0

如何在表达式引擎插件中重写此查询部分

代码语言:javascript
复制
$query = "UPDATE {$table} SET ";
foreach ($original_record as $key => $value) {
    if ($key != $id_field) {
        $query .= '`'.$key.'` = "'.str_replace('"','\"',$value).'", ';
    }
} 
$query = substr($query,0,strlen($query)-2); # lop off the extra trailing comma
$query .= " WHERE {$id_field}={$newid}";
mysql_query($query);

我尝试了下面的方法,但在第一行出现了一个意外的;错误

代码语言:javascript
复制
$query = $this->EE->db->query("UPDATE exp_channel_titles SET ";
foreach ($original_record1 as $key => $value) {
    if ($key != $id_field) {
        $query .= '`'.$key.'` = "'.str_replace('"','\"',$value).'", ';
    }
}
$query = substr($query,0,strlen($query)-2); # lop off the extra trailing comma
$query .= "WHERE entry_id={$newid}");
mysql_query($query); // Is this needed or should i remove it.
EN

回答 1

Stack Overflow用户

发布于 2012-03-26 16:10:44

使用EE内置函数(更简单、更容易阅读):

代码语言:javascript
复制
$this->EE =& get_instance();

$query = array();
foreach ($original_record as $key => $value) {
    if ($key != $id_field) {
        $query[$key] = str_replace('"','\"',$value);
    }
} 
$this->EE->db->where('entry_id', $newid);
$this->EE->db->update($table, $query);

而是解释为什么你的代码不能工作;

代码语言:javascript
复制
$this->EE->db->query

这是一个运行查询的EE函数,因此在将查询传递给它之前,需要将查询构建为字符串。所以..。

代码语言:javascript
复制
$query = "UPDATE exp_channel_titles SET ";
foreach ($original_record1 as $key => $value) {
    if ($key != $id_field) {
        $query .= '`'.$key.'` = "'.str_replace('"','\"',$value).'", ';
    }
}
$query = substr($query,0,strlen($query)-2); # lop off the extra trailing comma
$query = " WHERE entry_id={$newid}";
$queryResults = $this->EE->db->query($query);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9854407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档