web-dev-qa-db-fra.com

$ wpdb-> insérer les modifications de requête dans la sortie de requête SHOW COLUMNS

 enter image description here  J'écris une requête pour insérer des données dans la base de données mais lorsque j'imprime une requête à la sortie, celle-ci se transforme en requête "SHOW COLUMNS from tbl_name". Je vous écris ci-dessous requête. Mais il s’exécute comme dans l’image

$table_name1 = $wpdb->prefix . 'fullcontact';
    $sql1=$wpdb->insert( $table_name1, array(
        'status' => $status,
        'request_id' => $req_id,
        'likelihood' => $likelihood,
        'photos' => $photos,
        'chats' => $chats,
        'websites' => $websites,
        'fullname' => $fullname,
        'familyname' => $familyname,
        'givenname' => $givenname,
        'organisation' => $organisation,
        'normalizedlocation' => $normalizedlocation,
        'city' => $city,
        'state' => $state,
        'country' => $country,
        'age' => $age,
        'agerange' => $agerange,
        'gender' => $gender,
        'locationgeneral' => $locationgeneral,
        'socialprofiles' => $socialprofiles,
        'scores' => $scores,
        'topics' => $topics
    ) );

    //exit( var_dump( $wpdb->last_query ) );
    $wpdb->show_errors();
    $wpdb->print_error($sql1);
1
compoholic

Pour quiconque trouve cette question. Wordpress semble effectuer une requête SHOW FULL COLUMNS avant d'exécuter la requête INSERT. S'il détermine que la requête INSERT échoue/stocke des données incorrectes, par exemple parce que les types de données donnés ne tiennent pas dans la colonne, il n'exécute pas du tout la requête d'insertion et renvoie false.

Vérifier:

  • Avez-vous rempli tous les champs qui ne peuvent pas être NULL et n'avez pas de valeur par défaut
  • Le type de données de chaque champ correspond-il au type de données de la base de données?
  • Les données transmises à la fonction violent-elles des contraintes? Une chaîne ne peut pas être plus longue que la longueur maximale du champ dans lequel vous essayez de la placer. Un champ entier a une valeur minimale et maximale. Les entiers non signés ne peuvent pas contenir de valeurs négatives.
1
Sumurai8

Juste le même problème, le correctif était que j'ai essayé d'ajouter varchar plus longtemps que le champ de base de données peut contenir. Quand changé la base de données il a travaillé à nouveau

0
Roger Bücker