2017-02-17 2 views
-2

J'essaie d'écrire le contenu d'un POST à ​​notre DB mysql. Les données ne semblent pas être insérées, et je ne reçois aucune erreur. Le login db que j'utilise a aussi un accès à distance. La requête elle-même obtient les données correctes des variables. Donc, je ne suis pas sûr de ce que je fais mal.données ne pas insérer dans la base de données en utilisant mysqli et php

J'ai écrit la valeur de ma requête dans error_log, lorsque j'insère directement via workbench l'insertion est réussie.

[17-Feb-2017 07:02:47 America/Los_Angeles] INSERT INTO   
    consolidated.ACI_BNF (ConsumerName, AccountNumber,  
    NotificationType, ConfNumber, PaymentDate, PaymentAmount, 
    PaymentFee, FundingType, PaymentMethod, ProductMethod, 
    ImportDate) 
    VALUES ('JOHN DOE', '0', 'CREATE', '00', '2017-02-17', '444.37', '4.95 ', 'CREDIT CARD', '', 'ONE_TIME_PAY', '2017-02-17T10:02:47') 

Code PHP

$hostname_Database = "somedb"; 
$database_Database = "consolidated"; 
$username_Database = "username"; 
$password_Database = "password"; 

$mysqli = new mysqli($hostname_Database, $username_Database,$password_Database, $database_Database); 

$sql = "INSERT INTO consolidated.ACI_BNF (ConsumerName, AccountNumber, NotificationType, ConfNumber, PaymentDate, PaymentAmount, PaymentFee, 
FundingType, PaymentMethod, ProductMethod, ImportDate) 
VALUES ('$AccountHolderName', '$accountNumber', '$notification', 
'$ConfirmationNumber', '$PaymentDate', '$PaymentAmount', '$PaymentFee', 
'$FundingType', '$PaymentMethod', '$ProductMethod', '$ImportDate')"; 


    if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
    } 

    $result = $mysqli->query($sql); 
    if (!$result) { 
    printf("%s\n", $mysqli->error); 
    exit(); 
    } 

    echo "Query run. Inserted UserID " . $mysqli->insert_id . "<br />"; 


     mysqli_close($mysqli); 
+0

Imprimer la requête vers l'écran, le copier, et essayez de l'insérer manuellement. – labue

+0

Il n'y a aucun moyen pour nous de valider vos VALEURS (partie de code pas ici), donc ce que vous pouvez faire est 1. Imprimer la requête avant de l'exécuter, pour vérifier les erreurs 2. Faites un 'SHOW WARNINGS' après l'insertion, obtenir plus d'informations du serveur SQL. https://dev.mysql.com/doc/refman/5.7/fr/show-warnings.html – JustOnUnderMillions

+0

essayez 'mysqli_real_escape_string' pour la date – Kumar

Répondre

0

Vous devez utiliser:

$mysqli->connect_errno 

Au lieu de:

mysqli_connect_errno() 
0

peut-être vous avez oublié d'écrire le nom de soumettre. par exemple:

en html:

 <input type="submit" name="submit" > 

en php:

if(isset($_POST["submit"})){ 
      $user = $_POST["username"]; 
    } 
    ...