不知道这里出了什么问题。继续投掷...
致命错误:在非对象上调用成员函数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];
答案 0 :(得分:5)
显而易见的答案是$dbcon
根本没有被初始化,或者在调用此函数后被初始化。
正在初始化$dbcon
的代码是什么?它在何时何地运行?您还意识到需要在访问数据库的脚本的每次调用中初始化它?最后一个是确保您了解PHP中的global
范围。它意味着作用于该单个请求。 global
这个词有点误导。
答案 1 :(得分:0)
确保正确定义$dbcon
。如果您使用的是mysqli,请查看doc中如何设置连接。您也可以将连接对象传递给函数
function selectall($dbcon){
....
}