2016-04-08 7 views
0

Am versuchen mehrere Zeilen in Tabelle einfügen mit PHP:Legen Sie mehrere Zeilen in der Tabelle mit PHP

<?php 

$host = "localhost"; 
$username = "mysql_username"; 
$password = "mysql_password"; 
$dbname = "employee"; 
$con = mysqli_connect($host, $username, $password, $dbname) or die('Error in Connecting: ' . mysqli_error($con)); 

$st = mysqli_prepare($con, 'INSERT INTO emp(name, gender, designation) VALUES (?, ?, ?)'); 
// bind variables to insert query params 
mysqli_stmt_bind_param($st, 'sss', $name, $gender, $designation); 

for ($x = 0; $x <= 3; $x++) {  
    $name = 'tom'; 
    $gender = 'male'; 
    $designation = 'developer'; 
    mysqli_execute($st); 
} 

//close connection 
mysqli_close($con); 

?> 

Aber die Zeilen, die ich einfügen wollen werden in der Datenbank nicht gespeichert. Gibt es Fehler in meinem Code?

Eigentlich möchte ich die for-Schleife von json Array, ich teste gerade for-Schleife zu wissen, es funktioniert oder nicht.

+1

** Hinweis: ** mysqli_execute() ist veraltet und wird entfernt. (von http://php.net/manual/en/function.mysqli-execute.php) schauen Sie sich stattdessen http://php.net/manual/en/mysqli-stmt.execute.php an, was wahrscheinlich der ist korrekte Methode, die Sie verwenden müssen – apokryfos

+3

diese Zeile: mysqli_stmt_bind_param ($ st, 'sss', $ name, $ Geschlecht, $ Bezeichnung); sollte kurz vor dem mysqli_execute sein? –

+0

Vielen Dank, es hat funktioniert – Lydia

Antwort

1

Ich denke, der Code richtig ist, aber versuchen Sie dies:

<?php 
$host  = "localhost"; 
$username = "mysql_username"; 
$password = "mysql_password"; 
$dbname  = "employee"; 
$con = mysqli_connect($host, $username, $password, $dbname) or die('Error in Connecting: ' . mysqli_error($con)); 

$st = mysqli_prepare($con, 'INSERT INTO emp(name, gender, designation) VALUES (?, ?, ?)'); 

for ($x = 0; $x <= 3; $x++) { 

    $name = 'tom'; 
    $gender = 'male'; 
    $designation = 'developer'; 

    // bind variables to insert query params 
    mysqli_stmt_bind_param($st, 'sss', $name, $gender, $designation); 
    mysqli_execute($st); 
} 

//close connection 
mysqli_close($con); 
?> 

Die mysqli_stmt_bind_param($query, 'is',…) bedeutet, dass der erste Wert eine ganze Zahl (i) und der nächste Wert ist eine Zeichenfolge (n). Fühlen Sie sich frei, um sich an Ihre tatsächlichen Datentypen anzupassen.

0

Es funktioniert für mich, ich habe nur Benutzer, Pass und DBname geändert.

enter image description here