mysqli подготовил заявление, получило ошибку - PullRequest
0 голосов
/ 30 декабря 2018
<?php
    require 'conn.php';

    $name="gurpreet";
    $roll="16EAYCS032";
    $stream="computer_science";

    $sql="insert into prepare values(?,?,?);";

    $stmt=mysqli_stmt_init($conn);
    mysqli_stmt_prepare($stmt,$sql);
    mysqli_stmt_bind_param($stmt,"sss",$name,$roll,$stream);
    mysqli_stmt_execute($stmt);
    $result=mysqli_stmt_get_result($stmt);
    echo "RESULT <br>";
    if($row=mysqli_fetch_assoc($result)){
        echo "<br>Found";
        echo $row['name'];
    }
?>

Я получаю вывод как

РЕЗУЛЬТАТ Предупреждение: mysqli_fetch_assoc () ожидает, что параметр 1 будет mysqli_result, логическое значение дано в C: \ xampp \ htdocs \ php \ php \ insert_using_prepare.PHP на линии 23

1 Ответ

0 голосов
/ 30 декабря 2018

Как отмечает @Nigel, при выполнении оператора INSERT, mysqli_stmt_get_result возвращает логическое значение - поэтому mysqli_fetch_assoc($result) завершается неудачно.

Получение результата из mysqli_stmt_get_result должно быть выполнено с помощью SELECT.

По поводу вашего комментария: нет разницы между mysqli_execute и mysqli_stmt_execute - как вы можете видеть в официальной документации - mysqli_execute - это псевдоним для mysqli_stmt_execute.

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