数据库
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"]) . "'";