我的 INSERT INTO 查询不工作
My INSERT INTO query is not working
我正在尝试制作一个新闻系统,所以我只需要填写表格即可 post 一篇文章。不幸的是,似乎经过多次尝试和方法后,我的 INSERT INTO 查询似乎没有做任何事情。
我使用 2 个单独的文件:addnews.php(表单)和 confirm.php。
我从法语翻译了所有内容,以便您阅读。
这是工作正常的表单代码:
<div id="centerbox" class="news1" align="center">
<h1>Write a news</h1><br>
<form method="post" action="confirm.php">
<p>Title:</p>
<input type="text" name="title"><br>
<p>Content:</p>
<textarea name="content" rows="8" cols="45"></textarea>
<br>
<p>Picture to display:</p>
<select name="picture">
<option value="news">pics/INFO_IMPORTANTE.jpg</option>
<option value="event">pics/EVENEMENT.jpg</option>
<option value="helpme">pics/DEMANDE_AIDE.jpg</option>
<option value="helpyou">pics/PROPOSITION_AIDE.jpg</option>
</select>
<p>Your name:</p>
<input type="text" name="author"><br>
<input type="hidden" name="date" value="<?php echo date("d/m/Y"); ?>">
<input type="submit" value="Confirm">
</form>
</div>
这里是 confirm.php 中的代码:
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=L1-EVMAN', 'root', '');
}
catch (Exception $e)
{
die('Error : ' . $e->getMessage());
}
?>
<?php
$title = htmlspecialchars($_POST['title']);
$picture = $_POST['picture'];
$content = htmlspecialchars($_POST['content']);
$author = htmlspecialchars($_POST['author']);
$time = date('d/m/Y');
if (empty($title) OR empty($content) OR empty($author))
{
echo '<font color="red">You have to fill everything !</font><br>
<a href="http://localhost/sourcemaster/addnews>Start over</a>';
}
else
{
$addnews = $bdd->prepare('INSERT INTO news (id, title, pic, content, author, time) VALUES(NULL, :$title, :$picture, :$content, :$author, :$time)');
$addnews->execute(array(
'title' => $title,
'pic' => $picture,
'content' => $content,
'author' => $author,
'time' => $time
));
echo 'The news has been added correctly.';
}
?>
问题是当我填写表格并确认时,它确实说新闻已添加但新闻页面上没有任何内容(当我手动添加所有内容时效果很好 table) .
我在这方面真的有点新,我可以告诉你我最后做了一些即兴创作,遵循我找到的一些教程,但 none 似乎对我有帮助。
所以我向你们寻求帮助。随时询问更多细节或任何事情。
非常感谢!
您的插入查询参数不正确。
例如 :$title 将扩展为 :"whatever the user entered"
而且你没有绑定这样的参数。
您必须从绑定参数中删除“$”:
'INSERT INTO news (id, title, pic, content, author, time) VALUES(NULL, :title, :picture, :content, :author, :time)
我正在尝试制作一个新闻系统,所以我只需要填写表格即可 post 一篇文章。不幸的是,似乎经过多次尝试和方法后,我的 INSERT INTO 查询似乎没有做任何事情。 我使用 2 个单独的文件:addnews.php(表单)和 confirm.php。 我从法语翻译了所有内容,以便您阅读。
这是工作正常的表单代码:
<div id="centerbox" class="news1" align="center">
<h1>Write a news</h1><br>
<form method="post" action="confirm.php">
<p>Title:</p>
<input type="text" name="title"><br>
<p>Content:</p>
<textarea name="content" rows="8" cols="45"></textarea>
<br>
<p>Picture to display:</p>
<select name="picture">
<option value="news">pics/INFO_IMPORTANTE.jpg</option>
<option value="event">pics/EVENEMENT.jpg</option>
<option value="helpme">pics/DEMANDE_AIDE.jpg</option>
<option value="helpyou">pics/PROPOSITION_AIDE.jpg</option>
</select>
<p>Your name:</p>
<input type="text" name="author"><br>
<input type="hidden" name="date" value="<?php echo date("d/m/Y"); ?>">
<input type="submit" value="Confirm">
</form>
</div>
这里是 confirm.php 中的代码:
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=L1-EVMAN', 'root', '');
}
catch (Exception $e)
{
die('Error : ' . $e->getMessage());
}
?>
<?php
$title = htmlspecialchars($_POST['title']);
$picture = $_POST['picture'];
$content = htmlspecialchars($_POST['content']);
$author = htmlspecialchars($_POST['author']);
$time = date('d/m/Y');
if (empty($title) OR empty($content) OR empty($author))
{
echo '<font color="red">You have to fill everything !</font><br>
<a href="http://localhost/sourcemaster/addnews>Start over</a>';
}
else
{
$addnews = $bdd->prepare('INSERT INTO news (id, title, pic, content, author, time) VALUES(NULL, :$title, :$picture, :$content, :$author, :$time)');
$addnews->execute(array(
'title' => $title,
'pic' => $picture,
'content' => $content,
'author' => $author,
'time' => $time
));
echo 'The news has been added correctly.';
}
?>
问题是当我填写表格并确认时,它确实说新闻已添加但新闻页面上没有任何内容(当我手动添加所有内容时效果很好 table) . 我在这方面真的有点新,我可以告诉你我最后做了一些即兴创作,遵循我找到的一些教程,但 none 似乎对我有帮助。
所以我向你们寻求帮助。随时询问更多细节或任何事情。
非常感谢!
您的插入查询参数不正确。
例如:$title 将扩展为 :"whatever the user entered"
而且你没有绑定这样的参数。
您必须从绑定参数中删除“$”:
'INSERT INTO news (id, title, pic, content, author, time) VALUES(NULL, :title, :picture, :content, :author, :time)