我正在尝试将数据库迁移到不同参数中的另一个数据库,旧数据库没有任何框架,新数据库是wordpress数据库。好吧一切正常,但当我触发我的代码时,他创建了多个帖子和postmetas。有什么问题?
代码如下:
add_action('after_setup_theme', 'migracao');
function migracao()
{
$mysqli = new mysqli( 'localhost', 'drifttestecom_socialvida', 'a1b2c3d4', 'drifttestecom_socialvida_db2' );
//Tipo de convenios
$sql = 'SELECT id_tipo_convenio, nm_tipo_convenio, fl_ativo FROM tipo_convenio';
$query = $mysqli->query( $sql );
while ( $dados = $query->fetch_array() ) :
$titulo = sanitizeString( $dados['nm_tipo_convenio'] );
$status = ( $dados['fl_ativo'] === '1' ? 'ativo' : 'inativo' );
$args = array(
'post_title' => $titulo,
'post_status' => 'publish',
'post_type' => 'tipo-de-convenio'
);
$newPostID = wp_insert_post( $args );
update_post_meta( $newPostID, 'status', $status );
update_post_meta( $newPostID, 'codigo-tipo-convenio', $dados['id_tipo_convenio'] );
endwhile;
//Rede de convenios
$sql = 'SELECT id_rede, nm_rede, fl_ativo FROM rede_convenio';
$query = $mysqli->query( $sql );
while ( $dados = $query->fetch_array() ) :
$titulo = sanitizeString( $dados['nm_rede'] );
$status = ( $dados['fl_ativo'] === '1' ? 'ativo' : 'inativo' );
$args = array(
'post_title' => $titulo,
'post_status' => 'publish',
'post_type' => 'rede-conveniada'
);
$newPostID = wp_insert_post( $args );
update_post_meta( $newPostID, 'status', $status );
update_post_meta( $newPostID, 'codigo-rede', $dados['id_rede'] );
endwhile;
//Especialidade
$sql = 'SELECT nm_especialidade, fl_ativo FROM especialidade';
$query = $mysqli->query( $sql );
while ( $dados = $query->fetch_array() ) :
$titulo = sanitizeString( $dados['nm_especialidade'] );
$status = ( $dados['fl_ativo'] === '1' ? 'ativo' : 'inativo' );
$args = array(
'post_title' => $titulo,
'post_status' => 'publish',
'post_type' => 'especialidade'
);
$newPostID = wp_insert_post( $args );
update_post_meta( $newPostID, 'status', $status );
endwhile;
//Usuários
$sql = 'SELECT nm_usuario, ds_login, ds_email, tp_usuario FROM usuario LIMIT 1';
$query = $mysqli->query( $sql );
while ( $dados = $query->fetch_array() ) :
$nomeCompletoUsuario = ucwords( $dados['nm_usuario'] );
$fimNome = strpos( $nomeCompletoUsuario, ' ');
$nome = substr( $nomeCompletoUsuario, 0, $fimNome );
$sobrenome = substr( $nomeCompletoUsuario, $fimNome );
$login = $dados['ds_login'];
$email = $dados['ds_email'];
$rules = ( $dados['tp_usuario'] === '1' ? 'a:1:{s:13:"administrator";b:1;}' : 'a:1:{s:10:"subscriber";b:1;}' );
$level = ( $dados['tp_usuario'] === '1' ? '10' : '0' );
$random_password = wp_generate_password( $length=12, $include_standard_special_chars=false );
$user_id = wp_create_user( $login, $random_password, $email );
update_user_meta( $user_id, 'first_name', $nome );
update_user_meta( $user_id, 'last_name', $sobrenome );
update_user_meta( $user_id, 'dft_capabilities', $rules );
update_user_meta( $user_id, 'dft_user_level', $level );
endwhile;
//Clinica
$sql = 'SELECT id_clinica, nm_clinica, fl_ativo, id_usuario FROM clinica_convenio';
$query = $mysqli->query( $sql );
while ( $dados = $query->fetch_array() ) :
$titulo = sanitizeString( $dados['nm_clinica'] );
$status = ( $dados['fl_ativo'] === '1' ? 'ativo' : 'inativo' );
$sql2 = 'SELECT id_usuario, ds_login FROM usuario WHERE id_usuario = '.$dados['id_usuario'];
$query2 = $mysqli->query( $sql2 );
$usuario = $query2->fetch_array();
$usuarioLogin = $usuario['ds_login'];
global $wpdb;
$userID = $wpdb->get_row('SELECT id, user_login FROM dft_users WHERE user_login = "admindrift"');
if ( $userID ) {
$usuarioID = $userID->id;
$usuarioNome = update_user_meta( $usuarioID, 'first_name', true ).' '.update_user_meta( $usuarioID, 'last_name', true );
} else {
$usuarioID = '';
$usuarioNome = '';
}
$args = array(
'post_title' => $titulo,
'post_status' => 'publish',
'post_type' => 'clinica'
);
$newPostID = wp_insert_post( $args );
update_post_meta( $newPostID, 'status', $status );
update_post_meta( $newPostID, 'id-usuario-clinica', $usuarioID );
update_post_meta( $newPostID, 'usuario-clinica', $usuarioNome );
update_post_meta( $newPostID, 'codigo-clinica', $dados['id_clinica'] );
endwhile;
//Convenio médico
$sql = 'SELECT id_clinica, nm_convenio, ds_registro_classe, ds_endereco, ds_complemento, nr_cep, ds_bairro, id_cidade, nr_ddd, nr_telefone, fl_ativo, nr_latitude, nr_longitude, fl_emite_guia FROM convenio_medico LIMIT 5';
$query = $mysqli->query( $sql );
while ( $dados = $query->fetch_array() ) :
$titulo = ucwords( strtolower( $dados['nm_convenio'] ) );
$registroClasse = $dados['ds_registro_classe'];
$endereco = utf8_encode( $dados['ds_endereco'] );
$complemento = utf8_encode( $dados['ds_complemento'] );
$cep = $dados['nr_cep'];
$bairro = utf8_encode( $dados['ds_bairro'] );
$telefone = '('.$dados['nr_ddd'].') '.$dados['nr_telefone'];
$status = ( $dados['fl_ativo'] === '1' ? 'ativo' : 'inativo' );
$latitude = $dados['nr_latitude'];
$longitude = $dados['nr_longitude'];
$guia = ( $dados['fl_emite_guia'] === '1' ? 'ativo' : 'inativo' );
$idClinica = $dados['id_clinica'];
$idCidade = $dados['id_cidade'];
$sqlCidade = 'SELECT nm_cidade, id_estado FROM cidade WHERE id_cidade = '.$id_cidade;
$queryCidade = $mysqli->query( $sqlCidade );
$cidade = $queryCidade->fetch_array();
$nomeCidade = $cidade['nm_cidade'];
$idEstado = $cidade['id_estado'];
$sqlEstado = 'SELECT nm_estado FROM estado WHERE id_estado ='.$idEstado;
$queryEstado = $mysqli->query( $sqlEstado );
$estado = $queryEstado->fetch_array();
$nomeEstado = $estado['nm_estado'];
global $wpdb;
$clinica = $wpdb->get_row('SELECT dft_posts.id
FROM dft_posts
INNER JOIN dft_postmeta
WHERE dft_posts.id = dft_postmeta.post_id
AND dft_postmeta.meta_key = "codigo-clinica"
AND dft_postmeta.meta_value = '.$idClinica);
$args = array(
'post_title' => $titulo,
'post_status' => 'publish',
'post_type' => 'convenio-medico'
);
$newPostID = wp_insert_post( $args );
update_post_meta( $newPostID, 'status', $status );
update_post_meta( $newPostID, 'registro', $registroClasse );
update_post_meta( $newPostID, 'endereco', $endereco );
update_post_meta( $newPostID, 'complemento', $complemento );
update_post_meta( $newPostID, 'cep', $cep );
update_post_meta( $newPostID, 'bairro', $bairro );
update_post_meta( $newPostID, 'telefone', $telefone );
update_post_meta( $newPostID, 'latitude', $latitude );
update_post_meta( $newPostID, 'longitude', $longitude );
update_post_meta( $newPostID, 'emitir-guia', $guia );
update_post_meta( $newPostID, 'id-clinica', ( $clinica->id ? $clinica->id : '' ) );
update_post_meta( $newPostID, 'estado', $nomeEstado );
update_post_meta( $newPostID, 'cidade', $nomeCidade );
update_post_meta( $newPostID, 'endereco-completo', $endereco.' - '.$bairro.', '.$nomeCidade.' - '.$nomeEstado.', '.$cep.', Brasil' );
endwhile;
//Convenio Comercial
$sql = 'SELECT id_rede, id_tipo_convenio, nm_loja, ds_beneficio, ds_observacao, ds_endereco, ds_complemento, nr_cep, ds_bairro, id_cidade, nr_ddd, nr_telefone, fl_ativo, nr_latitude, nr_longitude, fl_emite_guia FROM convenio_comercio LIMIT 5';
$query = $mysqli->query( $sql );
while ( $dados = $query->fetch_array() ) :
$titulo = ucwords( strtolower( $dados['nm_convenio'] ) );
$beneficio = utf8_encode( $dados['ds_beneficio'] );
$observacao = utf8_encode( $dados['ds_observacao'] );
$endereco = utf8_encode( $dados['ds_endereco'] );
$complemento = utf8_encode( $dados['ds_complemento'] );
$cep = $dados['nr_cep'];
$bairro = utf8_encode( $dados['ds_bairro'] );
$telefone = '('.$dados['nr_ddd'].') '.$dados['nr_telefone'];
$status = ( $dados['fl_ativo'] === '1' ? 'ativo' : 'inativo' );
$latitude = $dados['nr_latitude'];
$longitude = $dados['nr_longitude'];
$guia = ( $dados['fl_emite_guia'] === '1' ? 'ativo' : 'inativo' );
$idRede= $dados['id_rede'];
$idTipoConvenio = $dados['id_tipo_convenio'];
$idCidade = $dados['id_cidade'];
$sqlCidade = 'SELECT nm_cidade, id_estado FROM cidade WHERE id_cidade = '.$id_cidade;
$queryCidade = $mysqli->query( $sqlCidade );
$cidade = $queryCidade->fetch_array();
$nomeCidade = $cidade['nm_cidade'];
$idEstado = $cidade['id_estado'];
$sqlEstado = 'SELECT nm_estado FROM estado WHERE id_estado ='.$idEstado;
$queryEstado = $mysqli->query( $sqlEstado );
$estado = $queryEstado->fetch_array();
$nomeEstado = $estado['nm_estado'];
global $wpdb;
$rede = $wpdb->get_row('SELECT dft_posts.id
FROM dft_posts
INNER JOIN dft_postmeta
WHERE dft_posts.id = dft_postmeta.post_id
AND dft_postmeta.meta_key = "codigo-rede"
AND dft_postmeta.meta_value = '.$idRede);
$tipoConvenio = $wpdb->get_row('SELECT dft_posts.id
FROM dft_posts
INNER JOIN dft_postmeta
WHERE dft_posts.id = dft_postmeta.post_id
AND dft_postmeta.meta_key = "codigo-tipo-convenio"
AND dft_postmeta.meta_value = '.$idTipoConvenio);
$args = array(
'post_title' => $titulo,
'post_status' => 'publish',
'post_type' => 'convenio-medico'
);
$newPostID = wp_insert_post( $args );
update_post_meta( $newPostID, 'status', $status );
update_post_meta( $newPostID, 'beneficio', $beneficio );
update_post_meta( $newPostID, 'observacao', $observacao );
update_post_meta( $newPostID, 'endereco', $endereco );
update_post_meta( $newPostID, 'complemento', $complemento );
update_post_meta( $newPostID, 'cep', $cep );
update_post_meta( $newPostID, 'bairro', $bairro );
update_post_meta( $newPostID, 'telefone', $telefone );
update_post_meta( $newPostID, 'latitude', $latitude );
update_post_meta( $newPostID, 'longitude', $longitude );
update_post_meta( $newPostID, 'emitir-guia', $guia );
update_post_meta( $newPostID, 'id-rede', ( $rede->id ? $rede->id : '' ) );
update_post_meta( $newPostID, 'id-tipo_convenio', ( $tipoConvenio->id ? $tipoConvenio->id : '' ) );
update_post_meta( $newPostID, 'estado', $nomeEstado );
update_post_meta( $newPostID, 'cidade', $nomeCidade );
update_post_meta( $newPostID, 'endereco-completo', $endereco.' - '.$bairro.', '.$nomeCidade.' - '.$nomeEstado.', '.$cep.', Brasil' );
endwhile;
}