2016-04-27 9 views
0

Ich versuche, ein Formular für einen Benutzer einzurichten, um Informationen einzugeben und diese Informationen dann in eine SQL-Tabelle einzufügen. Ich erhalte keine Fehlermeldungen, aber die Tabelle wird nicht in meiner Datenbank aktualisiert.Daten aus HTML nicht in SQL aktualisieren

My form page is this: 

<!DOCTYPE html> 
<html> 
<head> 
    <title>Input 2</title> 
</head> 
<body> 
<h1>Add a user</h1> 

    <form action="input-followup2.php" method="post"> 
     First Name: 
      <br/> 
       <input type="text" name="firstName"> 
      <br/> 
     <br> 
     Last Name: 
      <br/> 
      <input type="text" name="lastName"> 
     <br/> 
     <br> 
     Email Address: 
      <br/> 
      <input type="text" name="emailAddress"> 
     <br/> 
     <br> 
     Monthy Food Budget: 
      <br/> 
      <input type="number" step="0.01" name="foodBudget"> 
      <br/> 
     <br> 
     Monthly Utility Budget: 
     <br/> 
      <input type="number" step="0.01" name="utilityBudget"> 
     <br/> 
     <br> 
     Monthly Entertainment Budget: 
     <br/> 
      <input type="number" step="0.01" name="entertainmentBudget"> 
     <br/> 
     <br> 

     <input name="Add User" type="submit" value="Submit"> 
    </form> 

</body> 

Die Aktion für die Form Gipfel Taste Links zu dieser Seite:

Your input was received as: 

<?php 

$firstName = $_REQUEST["firstName"]; 
$lastName = $_REQUEST["lastName"]; 
$emailAddress = $_REQUEST["emailAddress"]; 
$foodBudget = $_REQUEST["foodBudget"]; 
$utilityBudget = $_REQUEST["utilityBudget"]; 
$entertainmentBudget = $_REQUEST["entertainmentBudget"]; 

echo '<br/>'; 
echo '<br/> Name: '; 
echo $firstName; 
echo '&nbsp'; 
echo $lastName; 
echo '<br/> Email Address: '; 
echo $emailAddress; 
echo '<br/> Food Budget: $'; 
echo $foodBudget; 
echo '<br/> Utility Budget: $'; 
echo $utilityBudget; 
echo '<br/> Entertainment Budget: $'; 
echo $entertainmentBudget; 
?> 

<?php 
require_once 'login.php'; 
$connection = mysqli_connect(
    $db_hostname, $db_username, 
    $db_password, $db_database); 
if(mysqli_connect_error()){ 
    die("Database Connection Failed: " . 
      mysqli_connect_error() . 
      " (" . mysqli_connect_errno() . ")" 
); }; 



$addUser = "INSERT INTO CUSTOMER (CustomerID, CustomerFirstName, CustomerLastName, CustomerEmail,FoodBudget, UtilityBudget, EntertainmentBudget) 
VALUES (001,{$connection ->real_escape_string($_POST[firstName])}, {$connection ->real_escape_string($_POST[lastName])},{$connection - >real_escape_string($_POST[emailAddress])}, {$connection ->real_escape_string($_POST[foodBudget])}, {$connection ->real_escape_string($_POST[utilityBudget])}, {$connection ->real_escape_string($_POST[entertainmentBudget])});"; 

$upload = mysqli_query($connection, $addUser); 

mysqli_close($connection); 




?> 

Wenn ich die Aktion ausführen und überprüfen SELECT * FROM CUSTOMERS; die Felder weiter null zurückzukehren. Kann mir jemand in die richtige Richtung zeigen?

+0

können Sie versuchen, Ihre Abfrage echo und es in mysql-Konsole ausführen? – uzaif

+1

Setzen Sie ein einzelnes Zitat wie '$ verbindung -> real_escape_string ($ _ POST [firstName])},' zu '$ verbindung -> real_escape_string ($ _ POST ['firstName'])}, Oder geben Sie einfach $ Verbindung -> real_escape_string ($ firstName)}, ' – VipindasKS

+0

Oh, ich habe die Zitate komplett verpasst. –

Antwort

0

Versuchen

$firstName = mysqli_real_escape_string($firstName); 
$lastName = mysqli_real_escape_string($lastName); 
$emailAddress = mysqli_real_escape_string($emailAddress); 
$foodBudget = mysqli_real_escape_string($foodBudget); 
$utilityBudget = mysqli_real_escape_string($utilityBudget); 
$entertainmentBudget = mysqli_real_escape_string($entertainmentBudget); 

$addUser = "INSERT INTO CUSTOMER(CustomerID, CustomerFirstName, CustomerLastName, CustomerEmail, FoodBudget, UtilityBudget, EntertainmentBudget) VALUES (001, '" . $firstName . "', '" . $lastName . "', '" . $emailAddress . "', '" . $foodBudget . "', '" . $utilityBudget . "', '" . $entertainmentBudget . "')"; 
+0

Dies setzt voraus, dass Ihre Tabelle ** tatsächlich ** KUNDE ist. Tabellennamen unterscheiden zwischen Groß- und Kleinschreibung. –

+0

Ist es alles Kappen. Ihr Code hat keine Fehler verursacht, aber die Tabelle wurde nicht gefüllt. – andrewxt

+0

Können Sie erklären, warum Sie in der SQL-Anweisung einzelne und doppelte Anführungszeichen um jede Variable hinzugefügt haben? – andrewxt

0

$ addUser = „IN CUSTOMER INSERT (CustomerID, CustomerFirstName, CustomerLastName, CustomerEmail, FoodBudget, UtilityBudget, EntertainmentBudget) VALUES (001, {$ connection -> real_escape_string ($ _ POST [firstName])}, {$ verbindung -> real_escape_string ($ _ POST [lastName])}, {$ verbindung -> real_escape_string ($ _ POST [emailAddress])}, {$ verbindung -> real_escape_string ($ _ POST [foodBudget])} , {$ verbindung -> real_escape_string ($ _ POST [DienstprogrammBudget])}, {$ verbindung -> real_escape_string ($ _ POST [entertainmentBudget])}); ";

Sie versuchen, Funktion in Double String in Anführungszeichen aufzurufen. Es ist nicht möglich. Sie können nur die Variablen ersetzen.

Verwenden Sie stattdessen String-Verkettung.

$addUser = "INSERT INTO CUSTOMER (CustomerID, CustomerFirstName, CustomerLastName, CustomerEmail,FoodBudget, UtilityBudget, EntertainmentBudget) 
VALUES (001,'". 
$connection->real_escape_string($_POST[firstName]). 
"', '". 
$connection->real_escape_string($_POST[lastName]). 
"','". 
$connection->real_escape_string($_POST[emailAddress]). 
"', '". 
$connection->real_escape_string($_POST[foodBudget]). 
"', '". 
$connection->real_escape_string($_POST[utilityBudget])}. 
"', '". 
$connection->real_escape_string($_POST[entertainmentBudget]). 
"');"; 

Noch besser, verwenden Sie vorbereitete Anweisungen und Platzhalter.

Auch können Sie auf Fehler überprüfen und ihnen zeigen, wenn überhaupt:

if (!$connection->query($addUser)) { 
    printf("Error: %s\n", $connection->error); 
} 

Sie, dass Tabellennamen falsch gibt. (Weil der Tabellenname ist Groß- und Kleinschreibung)

+0

Es hat nicht funktioniert, aber danke für die Antwort. Ihre Fehlerüberprüfung hat mir tatsächlich einen neuen Fehler gegeben, der hilfreich sein könnte. 'Aufruf an eine Mitgliedsfunktion query() für ein Nicht-Objekt' – andrewxt

+0

Also, Verbindung ist nicht aufgebaut oder Errata im Namen? Legen Sie die Fehlermeldungsstufe fest, um sie zu erfassen. http://php.net/manual/en/function.error-reporting.php – artoodetoo

+0

Ich habe alles dreifach überprüft und alles ist genau so, wie es in der Datenbank der Fall ist. Weißt du, was sonst diesen Fehler verursachen könnte? – andrewxt

Verwandte Themen