PHP准备好的声明:为什么这会抛出一个致命的错误?

Joe*_*ssi 0 php mysql pdo prepared-statement

不知道这里出了什么问题.继续投掷......

致命错误:在非对象上调用成员函数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];
Run Code Online (Sandbox Code Playgroud)

cle*_*tus 5

显而易见的答案是,$dbcon根本没有初始化或在调用此函数后初始化.

什么代码正在初始化$dbcon?它在何时何地运行?您还意识到在每次调用访问数据库的脚本时都需要初始化它?最后一个是确保您了解globalPHP 的范围.它意味着作用于该单个请求.这个词global有点误导.