web-dev-qa-db-fra.com

Comment obtenir le nombre de lignes affectées à partir de la fonction wordpress dbDelta ()

J'utilise dbDalta pour importer autant de lignes dans la base de données. Maintenant, je veux vérifier toutes les insertions de lignes avec succès, le nombre de lignes affectées et le nombre de lignes qui ne peuvent pas être importées.

Mon code:

$beginQuery = "INSERT INTO ".$wpdb->prefix."table_name(pzipcode, Zip_class, pcity, pstate, lattitude, longitude, pcountry, pstatus, ptime, id) VALUES ";

$zips  = array(
  array('pzipcode' => 'AB10','latitude' => '57.13514','longitude' => '-2.11731','pcity' => 'Aberdeen','pstate' => 'Scotland','pcountry' => 'SCT'),
  array('pzipcode' => 'AB11','latitude' => '57.13875','longitude' => '-2.09089','pcity' => 'Aberdeen','pstate' => 'Scotland','pcountry' => 'SCT'),
// ...................................
// ...................................
);

foreach($zips as $Zip) {
     //$beginQuery.' ('.$Zip['zp'].',"'.$Zip['ct'].'","'.$Zip['st'].'","United States",1,"'.current_time('mysql', 1).'")';
    $zipCodeDumper = dbDelta($beginQuery.' ("'.$Zip['pzipcode'].'","'.$Zip['Zip_class'].'","'.$Zip['pcity'].'","'.$Zip['pstate'].'","'.$Zip['lattitude'].'","'.$Zip['longitude'].'","'.$Zip['pcountry'].'","'.$Zip['pstatus'].'","'.$Zip['ptime'].'","'.$Zip['id'].'")');
    //break;
  }
  if (!$zipCodeDumper) {
    echo "Successfully Imported all Zipcode/postcode.";
  }else{
    echo "Something was wrong!!! Please Try again";
  }
1
Shapon Pal

dbDelta() sert à créer de nouvelles tables ou à modifier la structure (pas les données) des tables existantes.

Vous avez besoin de $wpdb->insert( $tablename, $zips ); pour insérer des données. D'où le nom. :)

Et cette méthode renvoie le nombre de lignes affectées, exactement comme vous en avez besoin. Si elle retourne false, examinez $wpdb->last_error pour voir ce qui ne va pas exactement.

2
fuxia