对这个问题的回答没有给出明确的答案,我看不出所选答案是正确的,因为这个问题没有提到删除表中的所有行,也没有必要截断表以替换行中的值。因此,这里有一个答案,尽管有点晚:
如果使用replace()函数,其中replace中有一个id,则表示记录may exist 首先,否则您总是直接转到insert()函数来添加新记录。因此,必须有主键(id)以外的字段来定义记录是否存在。在上面的示例中,让我们假设标题是定义是否需要新记录或记录中的字段是否需要更新的重要字段。
我总是将get\\u var()函数与replace()函数一起使用,如下所示:
首先检查记录是否存在(对于重要字段),以便将id传递给replace函数,如下所示:
$recID = $wpdb->get_var( "SELECT id FROM ".($wpdb->prefix . \'fafa\')." WHERE title LIKE ".$title."\'");
现在使用replace函数创建新记录或更新找到的$recID的字段:
$wpdb->replace( $wpdb->prefix . \'fafa\',
array(
\'id\' => $recID,
\'title\' => trim($row->item(0)->nodeValue) ,
\'liveprice\' => trim($row->item(2)->nodeValue) ,
\'changing\' => trim($row->item(4)->nodeValue) ,
\'lowest\' => trim($row->item(6)->nodeValue) ,
\'topest\' => trim($row->item(8)->nodeValue) ,
\'time\' => trim($row->item(10)->nodeValue) ),
array(
\'%d\', \'%s\', \'%s\', \'%s\', \'%s\', \'%s\', \'%s\' )
);
最后,在replace之后,可以使用以下方法访问从AUTO\\u INCREMENT列生成的ID:
$wpdb->insert_id;
我希望这能帮助那些有类似问题的人。