[英]How can I send data by json in php
我正在嘗試在本地主機中使用w3school示例,但是當我運行它時,它給了我這個錯誤
致命錯誤:未捕獲錯誤:在C:\\ xampp \\ htdocs \\ test \\ json_demo_db.php:7中的bool上調用成員函數bind_param():7堆棧跟蹤:#0 {main}拋出在C:\\ xampp \\ htdocs \\ test \\第7行的json_demo_db.php
我剛剛從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數據庫)
prepare()
方法返回FALSE
因為您沒有為其提供表名。
您正在FALSE
上調用函數bind_param()
。
通過以下方式直接提供表名:
$stmt = $conn->prepare("SELECT name FROM `$obj->table` LIMIT ?");
因此,修改后的代碼應為:
$stmt = $conn->prepare("SELECT name FROM `$obj->table` LIMIT ?");
$stmt->bind_param("s", $obj->limit);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.