如何使用PHP和MySQL在textarea中显示最近的两篇文章?
我的计划是在顶部有一个如何使用PHP和MySQL在textarea中显示最近的两篇文章?,php,mysql,Php,Mysql,我的计划是在顶部有一个textarea,在那里你可以键入任何你想要的内容并发布它,然后它下面的两个textarea会更新。但是我不知道怎么做,请帮忙 <?php if ($_POST['submit']) { mysql_connect ("10.246.16.206", "alanay_eu", "hidden") or die ('Error: ' . mysql_error()); mysql_select_db("alana
textarea
,在那里你可以键入任何你想要的内容并发布它,然后它下面的两个textarea
会更新。但是我不知道怎么做,请帮忙
<?php
if ($_POST['submit']) {
mysql_connect ("10.246.16.206", "alanay_eu", "hidden")
or die ('Error: ' . mysql_error());
mysql_select_db("alanay_eu") or die ('Data error:' . mysql_error());
$post = mysql_real_escape_string($_POST['post']);
$query="INSERT INTO Posts (post) VALUES ('$post')";
mysql_query($query) or die ('Error updating database' . mysql_error());
}
?>
<center>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<textarea name="post" rows="12" cols="60" spellcheck="false">
Example Comment</textarea> <br/>
<input name="submit" type="submit" value="submit" /> <br/>
<textarea rows="12" cols="60" spellcheck="false"></textarea> <br/>
<textarea rows="12" cols="60" spellcheck="false"></textarea>
</form>
</center>
更改表格并添加时间戳:
ALTER TABLE Posts ADD postDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
然后通过postDate
进行订购和限制:
SELECT post FROM Posts ORDER BY postDate DESC LIMIT 2
迭代搜索结果,并在textarea
标记内回显post
重要
mysql_*函数已弃用,不应再使用。调查或调查
另外,将htmlentities()
与$\u服务器['PHP\u SELF']
配合使用以防止XSS。有关更多信息,请参阅
使用mysqli
的示例:
//I usually put the connection in a separate file, and include it as needed
$mysqli = mysqli_connect("myhost","myuser","mypassw","mydb") or die("Error " . mysqli_error($mysqli));
$stmt = $mysqli->prepare("SELECT post FROM Posts ORDER BY postDate LIMIT 2");
$stmt->execute();
$stmt->bind_result($post);
while($stmt->fetch()) {
$post = htmlentities($post, ENT_QUOTES, "UTF-8");
echo "<textarea rows='12' cols='60' spellcheck='false'>$post</textarea> <br/>";
}
//我通常将连接放在一个单独的文件中,并根据需要将其包括在内
$mysqli=mysqli_connect(“myhost”、“myuser”、“mypassw”、“mydb”)或die(“Error”)。mysqli_Error($mysqli));
$stmt=$mysqli->prepare(“按发布日期限制2从发布订单中选择发布”);
$stmt->execute();
$stmt->bind_结果($post);
而($stmt->fetch()){
$post=htmlentities($post,ENT_引号,“UTF-8”);
回显“$post
”;
}
您能告诉我数据库中是否有保留时间戳的列吗?如果是,您可以查询数据库并获取前两个帖子。没有,我对PHP还是个新手。我可以使用像SELECT*FROM table ORDER BY id DESC LIMIT 2这样的方法吗?SELECT TOP 2*FROM table ORDER BY Date DESC-editedyes您可以从Posts SELECT*FROM ORDER BY id DESC LIMIT 2添加了一个示例,用于mysqli
。我在主PHP文件中实现了该代码,所有内容都变为空白。我也像你说的那样添加了日期/打开错误报告以查看错误(但在生产环境中删除):ini\u集('display\u errors',1);错误报告(E_全部)代码>连接也必须更新:$mysqli=mysqli_connect(“myhost”、“myuser”、“mypassw”、“mybd”)或die(“Error”)。mysqli_Error($link))
连接线末尾的$link
应该是$mysqli
,抱歉。它有点正常,但它显示的不是最近创建的两个链接,而是我创建的前两个链接:SOops,按postDate DESC排序
。默认值为升序,这将为您提供第一个。更新答案,让我知道任何其他问题,以便我也能在答案中反映出来。