动态输入错误Mysql使用PHP


Dynamic Input Error To Mysql Using PHP

数据库

CREATE TABLE IF NOT EXISTS `student` (
  `id` int(11) NOT NULL,
`name` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `student`
ADD PRIMARY KEY (`id`);
ALTER TABLE `student`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
下面是HTML部分:jsFiddle 下面是PHP部分向mysql插入数据:
<?php
$connect = mysql_connect('localhost','root','');
if (!$connect) {
   echo mysql_error();
}
$db = mysql_select_db('demo');
if (!$db) {
  echo mysql_error();
} 
$all_names ="";
if(isset($_POST["mytext"])){   
   foreach($_POST["mytext"] as $key => $text_field){
      $all_names .= $text_field .", ";
 }
}
$result = "INSERT INTO student ( name ) VALUES( $all_names )";
$insert_row  = mysql_query($result);
if(!$insert_row){
   echo $result;
}

向数据库插入值出错:

INSERT INTO student ( name ) VALUES( dffd, )

我还没看到全貌。$_POST["mytext"]返回的实值是多少?

但是我猜你至少应该把你的循环改成:

foreach($_POST["mytext"] as $key => $text_field){
      if ($all_names == '') {
          $all_names .=  "( '".mysql_real_escape_string($text_field) ."') ";
      } else {
          $all_names .=  ",( '".mysql_real_escape_string($text_field) ."') ";
      }
 }

和你的查询到:

 $sql = "INSERT INTO student ( name ) VALUES $all_names ";

变化

   foreach($_POST["mytext"] as $key => $text_field){
      $all_names .= $text_field .", ";
   }

$all_names = "'" . implode("'), ('", $_POST["mytext"]) . "'";