为什么我的查询‘替换为...’不管用吗?

时间:2021-02-08 作者:J.BizMai

如果数据存在,为了插入或更新数据,我使用了“替换为…”在var中$query_string像这样:

dbDelta( $query_string ); 
由于某种原因,该行不是insert。为什么?

1 个回复
最合适的回答,由SO网友:J.BizMai 整理而成

原因是内部有此代码dbDelta() :

// Create a tablename index for an array ($cqueries) of queries.
foreach ( $queries as $qry ) {
    if ( preg_match( \'|CREATE TABLE ([^ ]*)|\', $qry, $matches ) ) {
        $cqueries[ trim( $matches[1], \'`\' ) ] = $qry;
        $for_update[ $matches[1] ]            = \'Created table \' . $matches[1];
    } elseif ( preg_match( \'|CREATE DATABASE ([^ ]*)|\', $qry, $matches ) ) {
        array_unshift( $cqueries, $qry );
    } elseif ( preg_match( \'|INSERT INTO ([^ ]*)|\', $qry, $matches ) ) {
        $iqueries[] = $qry;
    } elseif ( preg_match( \'|UPDATE ([^ ]*)|\', $qry, $matches ) ) {
        $iqueries[] = $qry;
    } else {
        // Unrecognized query type.
    }
}
ths功能dbDelta() 不支持“替换为”,并且在else 具有// Unrecognized query type. 议论

相关推荐

创建小部件但缺少jQuery

使用Astra主题,我无法在前端使用jQuery。它一直在记录Uncaught ReferenceError: jQuery is not defined at VM105:23. 实际上,假设Wordpress配备了jQuery,但我不明白为什么在控制台中会出现“未定义”的错误消息。为了添加jQuery,我只编写了以下代码,但没有效果: function addjq () { wp_enqueue_script(\'jquery\', plugin_dir_url(__FILE