我正在一個網站上工作; Apache要求我升級到PDO的新方法。致命錯誤:調用成員函數prepare()整數
我有我的功能,它將收集用戶X的所有信息,由變量$ _SESSION ['username']表示。
我的問題是:我得到錯誤標題。不過,我想收集字符串和INT值。
我的功能:functions.php的
function getDetails($username) {
$db = require("dbConn.php");
$sql = $db->prepare("SELECT * FROM `es42_members` WHERE HandleName='$username'");
$sql->execute();
$row = $sql->fetchAll();
return $row;
}
我的索引文件:index.php文件
$details = getDetails($_SESSION['username']);
while ($row = $details->fetch_assoc()) {
$id = $row['UserID'];
$email = $row['Email']; // This return String
$isAdmin = $row['isAdmin']; //This return 0 - 1. But in the table is registered by String (Varchar).
}
echo "Your email is: $email";
if($isAdmin == "1"){ echo "You are a admin!" }
UPDATE 我的新代碼如下:
功能:@Marcus
function getDetails($username) {
require("dbConn.php");
$sql = $db->prepare("SELECT * FROM `es42_members` WHERE HandleName='$username'");
$sql->execute();
$row = $sql->fetchAll();
return $row;
}
dbConn.php [原創]
<?php
$db = new PDO('mysql:host=localhost;dbname=ProfileTest', "root", "1234");
$db = null;
?>
dbConn.php [編輯和工作]
<?php
$db = new PDO('mysql:host=localhost;dbname=ProfileTest', "root", "1234");
?>
看看錯誤說的是什麼。 '調用成員函數prepare()在整數'上。這意味着'$ db'是一個整數,而不是數據庫連接。 – Mike
另外,您通常只希望每個請求連接到數據庫一次,並將其作爲參數傳遞給需要它的任何函數,或將其作爲類屬性存儲。如果你把你的連接放在你的'getDetails'函數中,它將不能在腳本的其他地方重用。 – Mike
逐行瀏覽你的'dbConn.php'文件,我認爲這個錯誤非常明顯。來吧,你甚至都不會在這裏嘗試。 – Mike