2017-07-04 7 views
0

Ich habe sehr seltsames Problem. Ich möchte MySQL-Abfrage ausführen, wie es unten angezeigt wird, aber es funktioniert nicht. Die Verbindung zur Datenbank ist erfolgreich, die INSERT-Abfrage ist auch in Ordnung, denn wenn ich sie direkt in der phpmyadmin-Konsole ausführe, funktioniert sie, aber sie funktioniert hier nicht in PHP-Code.MySQL Datenbank einfügen

Können Sie mir sagen, was ich vermisse?

$servername = "localhost"; 
$username = "admin"; 
$password = "admin123"; 
$dbname = "database1"; 

$conn = mysqli_connect($servername, $username, $password, $dbname); 

if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

$sql = "INSERT INTO last_visit (ip, lastvisit) VALUES ('123', '123')"; 
+2

Einfach, Sie die Abfrage nicht durchgeführt haben. –

+1

führen Sie das $ sql aus, das ist es. $ mysqli-> query ($ sql); –

+3

Sie verwenden bereits eine API, die ** vorbereitete Anweisungen ** mit beschränkter variabler Eingabe unterstützt. Sie sollten parametrisierte Abfragen mit Platzhaltern (vorbereitete Anweisungen) verwenden, um Ihre Datenbank gegen [SQL-injection] (http://stackoverflow.com) zu schützen/q/60174 /)! Beginnen Sie mit [mysqli :: prepare() '] (http://php.net/mysqli.prepare) und [mysqli_stmt :: bind_param()'] (http://php.net/mysqli-stmt .bind-param). Auch wenn diese Werte * zur Zeit * statisch sind - sie werden sich wahrscheinlich später ändern, nehme ich an? – Qirel

Antwort

3

Sie müssen Ihre $ SQL ausführen, weil jetzt Ihre $ SQL nur eine Zeichenfolge ist, tut es nichts.

Fügen Sie diese:

if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 
+2

Versuche, Dinge wie '=== WAHR' zu vermeiden, es stellt schlechte Gewohnheiten auf. In diesem Fall ist 'if ($ conn-> query (...))' ausreichend. – tadman