sql >> Database teknologi >  >> RDS >> Mysql

hvordan man indsætter flere array i databasen ved hjælp af PHP

Jeg har ændret din kode for at få den til at virke:

form.php

<form method="POST" action="form.php">
<input type="text" name="waw" />
<input type="submit" />
</form>

<form method="POST" action="input.php">
<?php 
$i=0;

while ($i<$_GET['waw'])
{
?>

<!-- Person #1 -->

<input type="text" name="username[]" />

<input type="text" name="phonenum[]" />

<input type="text" name="add[]" /><br />


<?php 
$i++;
}
?>
<input type="submit" />
</form>

input.php

<?php


$username="maizakath";
$password="12345";
$database="tryinsert";
mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die("<b>Unable to specified database</b>");



$sql_start = 'INSERT INTO `mytable` VALUES '; 
$sql_array = array(); 
$queue_num = $_POST['waw']; 
foreach ($_POST['username'] as $row=>$name)
{
$username = $name;
$phonenum = $_POST['phonenum'][$row];
$add = $_POST['add'][$row];
$sql_array[] = '("' . $username . '", "'.$phonenum.'", "'.$add.'")'; 
if (count($sql_array) >= $queue_num) {
  $query_single=$sql_start . implode(', ', $sql_array);
  mysql_query($query_single); 
  $sql_array = array(); 
}
}

if (count($sql_array) > 0)  {
  $query = $sql_start . implode(', ', $sql_array);
  mysql_query($query)or die(mysql_error());
}

?>

Det fungerer fint. Jeg har lige testet det på min lokale maskine.

EDIT(Kommentarer) :

  1. Brug af variabel $queue_num i input.php er meningsløs, fordi denne variabel kun er tilgængelig i form.php script ('wow' input placeret i en anden form, som sendes til filen form.php, ikke input.php). Så if (count($sql_array) >= $queue_num) blok fungerer forkert;

  2. Tjek dine konfigurationsindstillinger for databaseforbindelsen (som jeg har skrevet i kommentaren, skal du definere konstant med navnet 'localhost' eller omslutte ordet localhost med anførselstegn);

  3. Jeg har ændret din formular, fordi den havde en forkert struktur;

  4. Jeg forstod ikke formålet med at skabe den første form i form.php.

Du kan ændre denne kode for at gøre den mere passende til dit tilfælde. Men prøv først at bruge denne.

Bemærk. Brug var_dump() funktion for at se dit $_POST-array under fejlfinding for at forstå, hvilke variabler der er tilgængelige.



  1. MySQL High Availability Framework Forklaret – Del I:Introduktion

  2. Forstå log buffer skylninger

  3. Sporing af PostgreSQL med perf

  4. MySQLSyntaxErrorException ved forsøg på at udføre PreparedStatement