MySQLI Выбрать из таблицы, используя подготовленные оценки

В настоящее время я нахожусь в процессе изменения всех моих старых MySQL на MySQLI. Однако у меня возникла проблема при попытке ВЫБРАТЬ из таблицы при использовании подготовленных операторов. Теги это строка.

Мой тестовый URL:

http://example.com/retreiveCustomArticle.php?Tags=the

Мой вывод:

string(3) "the" string(44) "SELECT `ID` FROM `Articles` WHERE `Tags` = ?" Success!: 0

Код:

<?php
//Open a new connection to the MySQL server
$mysqli = new mysqli('localhost','createyo_james','password','createyo_TestDatabase');

//Output any connection error
if ($mysqli->connect_error) {
    die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}

//values to be inserted in database table
$Tags = $_GET["Tags"];

var_dump($_GET["Tags"]);

$query = "SELECT `ID`, `NewsStory`, `Summary1`, `Summary2` FROM `Articles` WHERE `Tags` = ?";

$statement = $mysqli->prepare($query);
var_dump($query);
//bind parameters for markers, where (s = string, i = integer, d = double,  b = blob)
$statement->bind_param('s', $Tags);

if($statement->execute()){

$result = $stmt -> get_result();

/* bind result variables */
$stmt->bind_result($ID,$NewsStory,$Summary1,$Summary2);

/* fetch values */
while ($stmt->fetch()) {
$output[]=array($ID,$NewsStory,$Summary1,$Summary2);
}

print(json_encode($output));
$stmt -> close();
}else{
    die('Error : ('. $mysqli->errno .') '. $mysqli->error);
}
$statement->close();

?>

2 ответа

Решение

В дополнение к тому, что сказал @VotetoClose, я предлагаю вам следующее:

$statement=$mysqli->prepare('SELECT ID FROM Articles WHERE Tags = ?');
$mysqli->execute(array($_GET['Tags']))

Ты пропускаешь bind_result() а также fetch()

if($statement->execute()){
    if ($statement->bind_result($theId)) { // $theId will be the result that is returned from the database
        if ($statement->fetch()) { // if fetched successfully
             print 'Success!: ' . $theId . '<br />'; // do this
Другие вопросы по тегам