如何在MySQL数据库中为文本区域表单中的每一个换行符提交单独的行


How do I submit separate rows in my MySQL Database for every line break I make in a text area form?

我正在尝试创建一个文本区域表单,如果有人可以输入多个用换行符分隔的链接,并且每个链接都进入数据库中链接表下自己的行。我好像想不通。我到处都找过了。

index.html

<html>
    <head>
        <link rel="stylesheet" type="text/css" href="style.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    </head>
    <body>
        <form action="insert.php" method="post">
            <textarea action="results.php" id="textarea" name="url" class="boxsizingBorder">
            </textarea>
            <br />
            <textarea id="results" name="conversion" class="boxsizingBorder"></textarea><br />
            <input type="submit" value="Add Records" id="convert" onclick="getTrackData()">
            <span id="counter"></span>
        </form>
        <script src="script.js"></script>
    </body>
</html>

insert.php

<?php
    session_start();
    include('db.php');
    $query = mysql_query("SELECT * FROM persons");
    // Escape user inputs for security
    $url = $_POST['url'];
    $array = preg_split('/['n'r]+/', $url);
    // attempt insert query execution
    $sql = "INSERT INTO persons (url) VALUES ('$url')";
    if(mysqli_query($link, $sql)) {
        echo "Records added successfully.";
    } else{
        echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
    }
    // close connection
    mysqli_close($link);
?>

这就是它的样子:https://i.stack.imgur.com/Ilofh.png

这就是我想要的外观:https://i.stack.imgur.com/0UXQ3.png

编辑:我对mysql API进行了更改,但似乎仍然不知道如何在自己的行中获取每个链接。

编辑:

<?php
    include('db.php');

    // Escape user inputs for security
    $url = $_POST['url'];
    $array = explode(''n', $url);
    // attempt insert query execution
    foreach($array as $url) {
        mysqli_query($con, "INSERT INTO persons (url) VALUES ('$url')");
        // close connection
        mysqli_close($con);
    }
?>

您可以简单地在新行上使用explode(),而不是使用preg_split。

$array = explode(''n', $url);

然后,您可以在它上面使用foreach来执行插入。

foreach($array as $url)
{
    $sql = "INSERT INTO persons (url) VALUES ('$url')";
    if(mysqli_query($link, $sql)) {
        echo "Records added successfully.";
    } else{
        echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
    }
}

但请记住,这也取决于你如何观察新的线条。有一些所见即所得编辑器可以将新行转换为<br/>标记。一定要进行测试以确保情况并非如此。

编辑

弗雷德说得很好。您不能混合使用mysql API,您需要选择一个。由于mysql_库已弃用,因此最好使用mysqli_库。

您需要将连接器函数更改为mysqli_connect()而不是mysql_connect(),并从中进行适当的更改。