[英]PHP prepared statement: Why is this throwing a fatal error?
不知道這里出了什么問題。 不斷拋出...
致命錯誤:在非對象上調用成員函數prepare()
...每次到達$select = $dbcon->prepare('SELECT * FROM tester1');
部分。 有人可以闡明我做錯了什么嗎?
function selectall() //returns array $client[][]. first brace indicates the row. second indicates the field
{
global $dbcon;
$select = $dbcon->prepare('SELECT * FROM tester1');
if ($select->execute(array()))
{
$query = $select->fetchall();
$i = 0;
foreach ($query as $row)
{
$client[$i][0] = $row['id'];
$client[$i][1] = $row['name'];
$client[$i][2] = $row['age'];
$i++;
}
}
return $client;
}
$client = selectall();
echo $client[0][0];
顯而易見的答案是, $dbcon
根本沒有初始化,或者在調用此函數后已初始化。
什么代碼正在初始化$dbcon
? 它在何時何地運行? 您還意識到, 每次訪問數據庫的腳本調用時都需要初始化它嗎? 最后只是確保您了解PHP的global
作用域。 這意味着范圍僅限於該單個請求。 global
一詞有點誤導。
確保正確定義$dbcon
。 如果您使用的是mysqli,請參閱doc中如何建立連接。 您還可以將連接對象傳遞給函數
function selectall($dbcon){
....
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.