Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
expressionengine使用数据库类编写查询_Expressionengine - Fatal编程技术网

expressionengine使用数据库类编写查询

expressionengine使用数据库类编写查询,expressionengine,Expressionengine,如何在expressionengine插件中重写此查询部分 $query = "UPDATE {$table} SET "; foreach ($original_record as $key => $value) { if ($key != $id_field) { $query .= '`'.$key.'` = "'.str_replace('"','\"',$value).'", '; } } $query = substr($query,0,str

如何在expressionengine插件中重写此查询部分

$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);
我尝试了以下操作,但出现了意外错误
在第一行

$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.

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

但是要解释为什么你的代码不起作用

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

$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);

然后您可能希望将结果转换为数组:
$result=$queryResults->result_array()
$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);