2016-04-19 9 views
-1

Ich versuche, Daten in eine Tabelle einzufügen, und ich benutze mysqli API Abfrage ausführen.

$insert = "INSERT INTO pdhp_patient 
        (username, password, email, first_name,  
        last_name, dob, gender, s_s_n, i_n) 
      VALUES ('$username', '$password', '$email', '$first_name', 
        '$last_name', '$dob', '$gender', '$s_s_n', '$i_n');"; 

Dies ist die Abfrage, die ich ausführen möchte.

mysqli_query($connection, $insert); 

Die vorherige Codezeile dient zum Ausführen der Abfrage. Diesmal gibt die Abfrage false zurück. Ich bin nicht in der Lage zu verstehen, was der Fehler ist Ich habe sogar versucht, ohne die einfachen Anführungszeichen in der Abfrage. Dies funktioniert jedoch nicht.

Editted:

$username = $_POST['username']; 
$password = $_POST['password']; 
$email = $_POST['email']; 
$first_name = $_POST['first_name']; 
$last_name = $_POST['last_name']; 
$dob = $_POST['dob']; 
$dob = date("m-d-Y", strtotime($dob)); 
$gender = $_POST['gender']; 
$cid = $_POST['country']; 
$sid = $_POST['city']; 
$s_s_n = $_POST['s_s_n']; 
$i_n = $_POST['i_n']; 

global $connection; 




if(isset($_POST['type']) && $_POST['type']==="patient"){ 
    $insert = "INSERT INTO pdhp_patient (username, password, email, first_name, last_name, dob, gender, s_s_n, i_n) VALUES ('$username', '$password', '$email', '$first_name', '$last_name', '$dob', '$gender', '$s_s_n', '$i_n');"; 

    $insert = mysql_prep($insert); 

     $result = mysqli_query($connection, $insert); 
if ($result === false) { 
echo mysqli_error($connection); 
exit; 
} 
     if($val){ 
     echo "This must be working"; 
    }else{ 
     echo "This was not working"; 
    } 
}elseif(isset($_POST['type']) && $_POST['type']==="doctor"){ 
    $insert = "INSERT INTO pdhp_doctor (username, password, email, first_name, last_name, dob, gender, s_s_n, i_n) VALUES ($username, $password, $email, $first_name, $last_name, $dob, $gender, $s_s_n, $i_n);"; 
    $insert = mysql_prep($insert); 
    mysqli_query($connection, $insert); 
}elseif(isset($_POST['environment_radio']) && $_POST['type']==="environment"){ 
    $insert = "INSERT INTO pdhp_environmentalist (username, password, email, first_name, last_name, dob, gender, s_s_n, i_n) VALUES ($username, $password, $email, $first_name, $last_name, $dob, $gender, $s_s_n, $i_n);"; 
    $insert = mysql_prep($insert); 
    mysqli_query($connection, $insert); 
} 

Einige weitere Code für die richtige Information. Dieser Code Chunk ist, was ich erreichen möchte. Dies ist der vollständige Code. Danke.

+0

Vielleicht einer Ihrer Variablen null ist, vielleicht die Struktur Tabelle ist nicht das, was Sie denken, es ist oder die Verbindung hat issues..Show mehr Code – Mihai

+0

haben Blick auf [mysqli_error_list] (http: // php .net/manual/de/mysqli.error-list.php) und sehen Sie, was es Ihnen sagt. – Zimmi

+0

Ich verwende $ _POST-Methode, um die Variablen aus einem Formular abzurufen. –

Antwort

0

Gib einem Mann einen Fisch, er isst heute. Unterrichten Sie einen Mann zu fischen, er isst jeden Tag

einige Fehler hinzufügen

$insert = "INSERT INTO pdhp_patient 
        (username, password, email, first_name,  
        last_name, dob, gender, s_s_n, i_n) 
      VALUES ('$username', '$password', '$email', '$first_name', 
        '$last_name', '$dob', '$gender', '$s_s_n', '$i_n');"; 


$result = mysqli_query($connection, $insert); 
if ($result === false) { 
    echo mysqli_error($connection); 
    exit; 
} 

Dann Überprüfung können Sie wahrscheinlich Ihre eigenen Fehler

+0

Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, um die richtige Syntax für die Verwendung in der Nähe von '\' jay \ ', \' asd \ ', \' etwas \ washing.com \ ', \' Jay \ ', \' RSGH \ verwenden zu können. ', \' 1997-01-06 \ '' bei Zeile 1 Es sagt so etwas aus. Wo könnte der Fehler sein und ist Datum der Fehler? –

+0

Nicht ohne in der Lage zu sein, Sie Schema zu sehen, sorry nein, aber zumindest jetzt wissen Sie, was der Fehler ist – RiggsFolly

+0

das Problem ist woanders. Ich bearbeite die Frage, um weitere Informationen bereitzustellen. bitte guck dir das an. @RiggsFolly –

0

Per Ihr Update beheben und Ihr Problem Kommentar ist, dass Sie sind auf der Flucht Die ganze Abfrage, und nicht die Werte, die Sie übergeben. Das ist nicht, wie Flucht funktioniert, mit entkommen Sie entkommen die Werte gehen in dem Fall, dass sie ' s enthalten, die die SQL-Kapselung brechen würde. Anstatt also tun ..

$username = mysqli_real_escape_string($connection, $_POST['username']); 
$password = mysqli_real_escape_string($connection, $_POST['password']); 
$email = mysqli_real_escape_string($connection, $_POST['email']); 
$first_name = mysqli_real_escape_string($connection, $_POST['first_name']); 
$last_name = mysqli_real_escape_string($connection, $_POST['last_name']); 
$dob = mysqli_real_escape_string($connection, $_POST['dob']); 
$dob = mysqli_real_escape_string($connection, date("m-d-Y", strtotime($dob))); 
$gender = mysqli_real_escape_string($connection, $_POST['gender']); 
$cid = mysqli_real_escape_string($connection, $_POST['country']); 
$sid = mysqli_real_escape_string($connection, $_POST['city']); 
$s_s_n = mysqli_real_escape_string($connection, $_POST['s_s_n']); 
$i_n = mysqli_real_escape_string($connection, $_POST['i_n']); 

und loszuwerden mysql_prep. Sie sollten wahrscheinlich ein bisschen mehr auf SQL-Injections nachlesen:

http://php.net/manual/en/security.database.sql-injection.php
https://www.owasp.org/index.php/SQL_Injection

Der sichereren Ansatz parametrisierte Abfragen mit vorbereiteten Anweisungen verwendet.

http://php.net/manual/en/mysqli.quickstart.prepared-statements.php