Использование переданной переменной в запросе с использованием PDO - PullRequest
0 голосов
/ 26 октября 2011

Я пытаюсь взять переменную, переданную с другой страницы, и использовать ее в запросе PDO.Переменная - это дата добавления записи, и я пытаюсь вернуть все новые записи.Я использую $ _POST для этого в PDO?

<?php
require_once('globals.php');

$date_added = $_POST['date_added'];

$sth = $dbh->prepare("SELECT * FROM games WHERE date_added > $date_added");
$sth->execute();

/* Fetch all of the remaining rows in the result set */
print("Fetch all of the remaining rows in the result set:\n");
$result = $sth->fetchAll();
print_r($result);


?>

1 Ответ

2 голосов
/ 26 октября 2011

Вам необходимо установить соединение с базой данных, создав новый объект PDO в $dbh. Приведенный ниже код предполагает использование пользователя базы данных и пароля в виде $dbusername, $dbpassword и базы данных с именем $nameofdb.

$date_added заменяется в вызове prepare() параметром :dateadded, затем передается через массив в вызов execute().

Пожалуйста, прочтите документацию по PDO::__construct() и PDO::execute()

<?php
require_once('globals.php');

// Connect to MySQL via PDO
try {
    $dbh = new PDO("mysql:dbname=$nameofdb;host=localhost", $dbusername, $dbpassword);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

$date_added = $_POST['date_added'];

// Replace `$date_added` with a parameter `:dateadded`
$sth = $dbh->prepare("SELECT * FROM games WHERE date_added > :dateadded");
// bind $date_added and pass it into the execute() call inside an array
$sth->execute(array('dateadded'=>$date_added));

/* Fetch all of the remaining rows in the result set */
print("Fetch all of the remaining rows in the result set:\n");
$result = $sth->fetchAll();
print_r($result);

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...