我正在制作一个网站,该网站上有一个博客(project.intrepidem.net)。我可以使用它,以便当我在phpmyadmin面板中发表新帖子时,它会生成HTML并将新博客文章放在页面上,就像我想要的那样。问题是我制作了一个带有新帖子表格的管理面板,我希望能够填写表格并自动将帖子添加到数据库中,并且不会更新。
面板的形式:
<h1>Create a new Post</h1>
<form action="new_script.php" method="post">
<input type="text" name="title" placeholder="Post Title"/>
<select name="authorId">
<option value="1">First Name</option>
<option value="2">Second Name</option>
<option value="3">Third Name</option>
</select>
<textarea name="post" placeholder="Write your post."></textarea>
<input type="submit" value="post"/>
</form>
这是new_script.php页:
<?php
$title = $_POST['title'];
$post = $_POST['post'];
$authorId = $_POST['authorId'];
//connect to database
$connect = mysqli_connect('localhost','username', 'password', 'database');
//SQL query
$query = "INSERT INTO `blog_posts`(`title`, `post`, `author_id`) VALUES ([$title],[$post],[$authorId])";
//run the query
$run = mysqli_query($connect, $query);
//testing to see if values came from HTML page
echo $title;
echo $post;
echo $authorId;
echo "<br/><a href='../index.php' title='Go Home'><--Go Home</a>";
?>
$连接中的数据库名称,用户名和密码都是正确的。我知道表单中的值正在通过,因为我在底部将它们打印出来,并且在尝试更新表单时显示了正确的值。由于某种原因,该帖子无法保存到数据库,这意味着它不会更新页面。
谢谢。我只是在学习PHP,所以绝对是我看不到的愚蠢错误。让我知道您是否需要更多信息。
您的变量必须是引号,而不是[]
,更改:
$query = "INSERT INTO `blog_posts`(`title`, `post`, `author_id`) VALUES ([$title],[$post],[$authorId])";
进入
$query = "INSERT INTO `blog_posts`(`title`, `post`, `author_id`) VALUES ('$title','$post','$authorId')";