[英]Internal Server Error with linking database in PHP
我有一個數據庫,該數據庫用於為Xcode中正在處理的應用程序創建數組。 我下面的教程我在互聯網上找到這里 ,我跟着指示,但我的頁顯示的是一個內部服務器錯誤。 我假設我沒有正確更改以下代碼中的信息。 另外,我的Web主機使用MYSQL而不是MYSQLite,因此我不確定在代碼中將“ new mysqli”更改為什么。 由於明顯的原因,我省略了數據庫信息。 該數據庫具有一個名為“描述”的表,並且這些列標記為1-50,並分配了不同的值。
<?php
class RedeemAPI {
private $db;
// Constructor - open DB connection
function __construct() {
$this->db = new mysqli('hostname', 'Username', 'Pass', 'Database Name');
$this->db->autocommit(FALSE);
}
// Destructor - close DB connection
function __destruct() {
$this->db->close();
}
// Main method to redeem a code
function redeem() {
// Print all codes in database
$stmt = $this->db->prepare('SELECT 1 FROM descriptions');
$stmt->execute();
$stmt->bind_result($1);
while ($stmt->fetch()) {
echo "$1";
}
$stmt->close();
}
}
// This is the first thing that gets called when this page is loaded
// Creates a new instance of the RedeemAPI class and calls the redeem method
$api = new RedeemAPI;
$api->redeem();
?>
PHP變量必須以字母或_
開頭,因此您的錯誤源於以下語句:
$stmt->bind_result($1);
將變量名稱更改為類似$ col1之類的名稱。
同樣,您的select
語句將返回一個值:1.您可能打算這樣做:
SELECT * FROM descriptions
另外兩點:
內部服務器錯誤500可能掩蓋了一些有用的錯誤消息。 在php.ini / php5.ini中打開調試開關
將此添加到您的php.ini / php5.ini中,或僅將這些文件之一添加到您網站的根目錄即可
display_errors = On
display_startup_errors = On
error_reporting = -1
其次,如果您的主機未運行MYSQLi,則它們正在運行真正的舊php,因為MYSQLi在php4.1.3及更高版本中是標准的
第三,該SQL語句..它只是某種粗略的示例,還是您的實際語句? 如果您要提取一條記錄,應該是
SELECT * FROM tablename.description LIMIT 1
始終最好使您的陳述非常透徹
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.