2017-02-21 7 views
0

ich folgende bin ein Tutorial über SQL und lernen, wie durch PHP zu aktualisieren, schien alles zu gehen/Arbeit toll, aber wenn ich versuche, „einen Kunden hinzufügen“, in diesem Fall die Datenaktualisierungen an die Tabelle mit einer ID, aber die Kundendaten, die ich eingegeben habe, sind leer.INSERT INTO nicht PHP arbeiten

Es ist, als ob die Daten den neuen Einsatz registriert, aber keine der Daten zu akzeptieren, die in das Formular eingegeben wird. (Hoffentlich macht Sinn.)

Unten ist der Code für die POST in meiner "add_customer" Seite.

<?php 
if($_POST){ 
//Get Variables from post array 
$first_name = mysqli_real_escape_string($_POST['first_name']); 
$last_name = mysqli_real_escape_string($_POST['last_name']); 
$email = mysqli_real_escape_string($_POST['email']); 
$password = mysqli_real_escape_string(md5($_POST['password'])); 
$address = mysqli_real_escape_string($_POST['address']); 
$address2 = mysqli_real_escape_string($_POST['address2']); 
$city = mysqli_real_escape_string($_POST['city']); 
$state = mysqli_real_escape_string($_POST['state']); 
$zipcode = mysqli_real_escape_string($_POST['zipcode']); 

//Create Customer query 

    $query ="INSERT INTO customers (first_name,last_name,email,password) 
         VALUES ('$first_name','$last_name','$email','$password')"; 

//Run query 
    $mysqli->query($query); 

//Create address query 

    $query ="INSERT INTO customer_addresses (customer,address,address2,city,state,zipcode) 
     VALUES ('$mysqli->insert_id','$address','$address2','$city','$state','$zipcode')"; 

//Run query 
    $mysqli->query($query); 

    $msg='Customer Added'; 
    header('Location: index.php?msg='.urlencode($msg).''); 
    exit; 
} 

?> 

Ich bin nicht den gesamten Code für das Formular schreiben gehen, da die meisten davon das gleiche minus die Art und Platzhalter ist, aber der Kern der Codeform ist als

<form role="form" method="post" action="add_customer.php"> 
      <div class="form-group"> 
      <label>First Name</label> 
      <input name="first_name" type="text" class="form-control" placeholder="Enter First Name"> 
      </div> 

folgt Leider kann ich das Bild der hinzugefügten Seite nicht hinzufügen (noch nicht genug Rep), aber die Seite wird mit einer neuen Zeile erscheinen, die alle leer ist, aber am Ende die Bearbeitungsschaltfläche zeigt. Es wird also genug in der Datenbank gearbeitet, um eine neue ID für die eingegebenen Daten zu erstellen, aber die Daten selbst werden nicht in der Datenbank gespeichert.

Alle Hilfe ist willkommen! Bitte lassen Sie mich wissen, wenn zusätzliche Informationen benötigt werden, um dies zu klären.

Dies wurde behoben. Ich war Mißverständnis des mysqli-String und habe nicht meinen Verbindungsvariable *

+2

Empfehlung ... Graben Sie dieses Tutorial, und finden Sie eine, die über vorbereitete Anweisungen mit Bind-Variablen lehrt –

+1

hast du sogar verbinden? Ihr Code versagt hier sehr. –

+0

Ja der Code ist alles verbunden und wie ich sagte, sehe ich eine Art von Daten in die Datenbank gehen, wie eine neue ID erstellt wird, aber keine der Formulardaten werden in die Datenbank gebucht. – Leo

Antwort

0

Sie verwenden können.

mysqli_query($db, ...) or die(mysqli_error($db)); 

statt

nur
//Run query 
    $mysqli->query($query); 

in Ihren Fragen, um herauszufinden, welche Art von Fehler, den du bekommst. Es sollte angezeigt werden, nachdem Sie das Formular abgeschickt haben.

+0

Perfekt. Ja, die Fehler zu sehen, hat geholfen. Das erlaubte mir zu sehen, dass der Fehler, den ich bekommen hatte, tatsächlich zuvor gestellt worden war (wie Fred es markierte), so dass ich feststellen konnte, dass ich als msyqli_real_escape 2 Parameter benötigte, was meine Verbindungsvariable war. Sobald das hinzugefügt wurde, kommen jetzt Daten durch! Ich muss nur die Bearbeitung korrigieren und sicherstellen, dass die richtige mysqli-Variable jetzt aufgerufen wird, aber ich denke, das ist gesetzt, danke euch allen für die Hilfe !! – Leo