原因如下:
功能dbDelta
可以接收为第一个参数($queries
) 数组或字符串。如果$queries
是字符串,dbDelta
将使用“;”创建一个数组作为分隔符。
inside dbDelta
if ( !is_array($queries) ) {
$queries = explode( \';\', $queries );
$queries = array_filter( $queries );
}
因此,解决方案是创建一个查询数组,而不是字符串作为第一个参数,如下所示:
myFunction(){
...
$query_string = array(
0 => "INSERT INTO {$table_name} {$str_column_names} VALUES {$str_values}"
);
dbDelta( $query_string );
}
找到了答案
here.