Как использовать в mysqli bind_param (не работает над моим кодом)?

Почему я выбираю incorrecr строку mysqli php?

Таблица: тест

https://i.imgur.com/vM9Uy7P.jpg

Это мой старый код, он хорошо работает.

<?PHP
$query = "SELECT * FROM test WHERE test = '9' order by id desc";
$result = mysqli_query($db_mysqli, $query);
while($row = mysqli_fetch_assoc($result))
{
    $id = $row['id'];
    echo $id;
}
?>

Когда обновить мой код, как. Это не эхо ничего.

<?PHP
$test = "9";
$sql = 'SELECT * FROM test WHERE test != ? order by id desc';
$statement = $db_mysqli->prepare($sql);
$statement->bind_param('s', $test);
$statement->execute();
$result = $statement->get_result();
while($row = $result->fetch_array(MYSQLI_ASSOC))
{
    $id = $row['id'];
    echo $id;
}
?>

Как я могу сделать?

1 ответ

Проблема с вашим запросом

$sql = 'SELECT * FROM test WHERE test != ? order by id desc';

так должно быть

$sql = 'SELECT * FROM test WHERE test = ? order by id desc';

добавление! перед тестом!=? вы получите список всех идентификаторов, где тест не равен 9 ... я проверил ваш код, и он работает нормально

    <?php
$db_mysqli = mysqli_connect('localhost','root','yourpassword','test');
$test = "9";
$sql = 'SELECT * FROM test WHERE test = ? order by id desc';
$statement = $db_mysqli->prepare($sql);
$statement->bind_param('s', $test);
$statement->execute();
$result = $statement->get_result();
while($row = $result->fetch_array(MYSQLI_ASSOC))
{
    $id = $row['id'];
    echo $id;
}
?>
Другие вопросы по тегам