【问题标题】:Insert Multiple lines to database将多行插入数据库
【发布时间】:2014-12-14 11:43:06
【问题描述】:

我需要从文本区域插入多行插入到数据库的每一行。但现在是在一行中插入所有行我该怎么做?我也想要回显完成的行,如果行退出并发出警告则回显

我的文本区域输入是:

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>

【问题讨论】:

  • 您确定将其作为一行放入数据库中吗?问题可能在于您稍后检索它时如何显示它。如果您在网页上显示它,则需要使用nl2br() 将换行符转换为HTML &lt;br&gt; 标签。
  • $url= nl2br($_POST[url]);我试试这个这个不行
  • 我需要将每一行作为单独的行插入。我需要发布我的数据库吗?

标签: php database insert line


【解决方案1】:

这里的问题是您正在使用整个 url data 进行单次插入。

1)首先识别文本区域中的每个 url 值,并使用带有 '.'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.

【讨论】:

  • 不应该是explode("\n", $url)吗?
  • 先生,我已经告诉了我的期望。
  • @Barmar 我已经改了。
  • 有人告诉我怎么解决吗?
  • i fund for($i=0;$i
猜你喜欢
  • 1970-01-01
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
  • 2018-09-10
  • 2015-12-25
  • 2019-07-19
  • 1970-01-01
相关资源
最近更新 更多