我正在建立一个有博客的网站(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>";
?>
$ connect中的数据库名称,用户名和密码都是正确的。我知道表单中的值是通过的,因为我在底部将它们打印出来,并在我尝试更新表单时显示正确的值。由于某种原因,帖子不会保存到数据库,这意味着它不会更新页面。
感谢。我只是在学习PHP,所以它绝对是一个我无法看到的愚蠢错误。如果您需要更多信息,请与我们联系。
答案 0 :(得分:3)
您的变量必须是引号,而不是[]
,更改:
$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')";