Я пытаюсь создать систему новостей, поэтому мне просто нужно заполнить форму, чтобы опубликовать статью. К сожалению, кажется, что после многих попыток и методов мой запрос INSERT INTO, похоже, ничего не делает. Я работаю с двумя отдельными файлами: addnews.php (форма) и confirm.php. Я перевел все с французского, чтобы вам было легче читать.Мой запрос INSERT INTO не работает
Вот код формы, который работает отлично:
<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.';
}
?>
Проблема заключается в том, что, когда я заполнить форму и подтвердить, он говорит, что новости были добавлены, но ничего не отображается на странице новостей (это прекрасно работает, когда я вручную добавляю все в таблицу). Я действительно очень люблю все это, и я могу сказать, что я немного импровизировал в конце, следуя некоторым учебникам, которые я нашел, но ни один из них, похоже, мне не помогает.
Так что я прошу вас, ребята, о помощи. Не стесняйтесь спрашивать подробности или что-то еще.
спасибо!
за одну вещь, которую вы должны установить соединение п.д.о. атрибуты огня исключения. '$ bdd-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);' – Drew
- это не то, как вы бы использовали заполнители в sql - это должно быть больше похоже на новости INSERT INTO (id, title, pic, content, автор, время) VALUES (NULL,: title,: picture,: content,: author,: time) 'и соответствующие записи в массиве params (где вы выполняете инструкцию) должны иметь двоеточие – RamRaider
Удалить знак доллара в вашем связать параметры. То есть В вашем фактическом запросе вставки измените: $ title на: title. –