我需要从文本区域插入多行插入到数据库的每一行。但现在是插入一行中的所有行我怎么能这样做?我也想要echo完成的行,如果行退出并带有警告
则回显我的文字区域输入是:
line1
line2
line3
line4
line5
我想要像这样插入
id url
1 line1
2 line2
3 line3
4 line4
5 line5
这是我的insert.php
<html><body>
<h1>indian mp3 Database: indianmp3</h1>
<form action="post.php" method="post">
Firstname:<textarea name="url" id="term" cols="40" rows="10"></textarea><br><br>
Category: <select name="cat_id">
<option value="1">cat1</option>
<option value="2">cat2</option>
<option value="3">cat3</option>
</select>
<input type="submit"/>
</form>
</body></html>
这是我的post.php
<html><body>
<?php
$host="localhost";
$user=" ";
$pass=" ";
$database=" ";
$con=mysql_connect($host, $user, $pass) or die("Could not connect to host.");
mysql_set_charset('UTF8', $con);
if(!$con) {
die('Could not connect: '.mysql_error());
}
if(isset($_POST['cat_id'])) {
$cat_it=(int)$_POST['cat_id'];
$url=$_POST[url];
mysql_select_db($database, $con) or die("Could not find database.");
$sql="INSERT INTO link (url, cat_id) VALUES ('$url' , '$cat_it')";
}
if(!mysql_query($sql, $con)) {
die('Error: '.mysql_error());
}
echo "inserted all line";
mysql_close($con)
?>
</body></html>
答案 0 :(得分:0)
这里的问题是你使用整个url data
进行单个插入。
1)首先从文本区域中识别每个网址值,然后使用'.'
或specific keyword
进行展开,制作一个数组。
2)循环遍历url数组的大小以插入表中。
在mysql对象上插入检查错误时出错,否则继续插入直到所有插入完成。
假设您$url= $_POST[url];
中的所有网址都与'\n'
分开:
$urlArr = explode("\n",$url);
for($i=0;$i< sizeof($urlArr);i++){
$sql="INSERT INTO link (url, cat_id) VALUES ('$url[i]' , '$cat_it')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
}
请开始使用PDO or mysqli.