Я предполагаю, что это простая проблема, я просто не могу узнать, где и почему. (надеюсь, что это не дубликат).Вставка в базу данных mysql с php
Мое намерение - захватить информацию из ввода и из текстового поля и вставить его в мою базу данных в соответствующую таблицу, в которой уже есть «журналы». Однако после попадания submit и без получения каких-либо ошибок в базу данных ничего не добавлено ... мысли?
вот мой "вид" (post.php):
<fieldset>
<form method="post" action="push.php">
<input type="text" name="datetitle" /><br />
<textarea name="journalcontent"></textarea><br />
<input type="submit" />
</form>
<?php echo $datetitle ?>
<p><?php $output ?></p>
</fieldset>
здесь мой "индекс" (push.php) с очевидными частями опущена:
<?php
$dsn = '*';
$username = '*';
$password = '*';
include "model.php";
try {
$db = new PDO($dsn, $username, $password);
} catch (PDOException $exc) {
echo 'connection failed';
exit;
}
echo 'goodzo';
$datetitle = $_POST['datetitle'];
$journalcontent = $_POST['journalcontent'];
if (!empty($datetitle)) {
$output = add_entry($datetitle, $journalcontent);
} else {
$output = "empty";
}
include "post.php";
?>
и, наконец, моя модель .php:
<?php
function add_entry($datetitle, $journalcontent) {
global $db;
$query = 'INSERT INTO journals
(entry_date, contents)
VALUES
($datetitle, $journalcontent)';
try {
$statement = $db->prepare($query);
$statement->execute();
$statement->closeCursor();
} catch (PDOException $e) {
$error_message = $e->getMessage();
display_db_error($error_message);
}
}
?>
Не включает ли model.php после подключения PDO? В противном случае $ db ничего не говорит .... – KyleK
@KyleK нет, поскольку он ссылается только на вызов функции. * php * – 19greg96
[Вы действительно должны исправить это неприятное отверстие для инъекций SQL в своем приложении.] (http://stackoverflow.com/questions/60174/how-to-prevent-sql-injection-in-php) – PeeHaa