我试图创建一个文本区域表单,如果有人可以输入多个由换行符分隔的链接,并且每个链接都会进入我数据库中链接表下的自己的行。我似乎无法弄明白。我到处都是。
的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);
?>
这就是它的外观: http://i.imgur.com/dsxtx6F.png
这就是我想要的样子: http://i.imgur.com/CzwHj5i.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);
}
?>
答案 0 :(得分:1)
您可以在新行上使用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);
}
}
但请记住,这也取决于你如何观察新线。有WYSIWYG编辑器将新行转换为<br/>
标签。确保你测试以确保不是你的情况。
修改强>
弗雷德提出了一个很好的观点。你不能混合mysql API,你需要选择一个。由于不推荐使用mysql_
库,因此最好使用mysqli_
库。
您需要将连接器功能更改为mysqli_connect()
而不是mysql_connect()
,并从那里进行适当的更改。