Как я могу отправить данные по JSON в PHP - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь использовать пример w3school на моем локальном хосте, но когда я его запускаю, он выдает мне эту ошибку

Неустранимая ошибка: необученная ошибка: вызов функции-члена bind_param () для bool в C: \ xampp \ htdocs \ test \ json_demo_db.php: 7 Трассировка стека: # 0 {main}, брошенный в C: \ xampp \ htdocs \ test \ json_demo_db.php в строке 7

Я только что скопировал код из w3school и заменил информацию о моей базе данных

вот мой код

<?php
header("Content-Type: application/json; charset=UTF-8");
$obj = json_decode($_GET["x"], false);

$conn = new mysqli("localhost", "root", "", "blog");
$stmt = $conn->prepare("SELECT name FROM ? LIMIT ?");
$stmt->bind_param("ss", $obj->table, $obj->limit);
$stmt->execute();
$result = $stmt->get_result();
$outp = $result->fetch_all(MYSQLI_ASSOC);

echo json_encode($outp);
?>

а это мой html и js

<html>
<body>

<h2>Get data as JSON from a PHP file on the server.</h2>

<p>The JSON received from the PHP file:</p>

<p id="demo"></p>

<script>
    var obj, dbParam, xmlhttp;
    obj = { "table":"users", "limit":10 };
    dbParam = JSON.stringify(obj);
    xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("demo").innerHTML = this.responseText;
        }
    };
    xmlhttp.open("GET", "json_demo_db.php?x=" + dbParam, true);
    xmlhttp.send();
</script>

</body>
</html>

и это ссылка на пример w3school (база данных PHP)

https://www.w3schools.com/js/js_json_php.asp

1 Ответ

1 голос
/ 09 апреля 2019

Метод prepare() возвращает FALSE, поскольку вы не предоставляете ему имя таблицы.

И вы вызываете функцию bind_param() для FALSE.

Укажите имя таблицы напрямую:

$stmt = $conn->prepare("SELECT name FROM `$obj->table` LIMIT ?");

Итак, ваш измененный код должен быть:

$stmt = $conn->prepare("SELECT name FROM `$obj->table` LIMIT ?");
$stmt->bind_param("s", $obj->limit);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...