“准备”PDO功能错误

时间:2016-04-24 12:21:17

标签: php mysql pdo

这可能是个愚蠢的问题,但我无法解决。

我有PDO连接(bdd.php)

<?php
    $dbserver="localhost";
    $dbuser="root";
    $dbpass="";
    $dbname="calendar";

  $db = new PDO(
  "mysql:host=$dbserver;dbname=$dbname;" ,"$dbuser","$dbpass",
    array(
      PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
      PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8"
    )
  );
?>

但是我收到了这个错误:

  

致命错误:在第6行的Index.php上的非对象上调用成员函数prepare()

这是我的“Index.php”:

<?php
require_once('bdd.php');

$sql = "SELECT id, title, start, end, color FROM events ";

$req = $bdd->prepare($sql);
$req->execute();

$events = $req->fetchAll();

?>

<!DOCTYPE html>
<html lang="en">

<head>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">

.....(继续是正常的HTML / PHP / JS内容,并不重要)

2 个答案:

答案 0 :(得分:3)

$req = $bdd->prepare($sql);似乎是您的问题所在。

bdd.php内,您将数据库连接分配给$db

只需更改它们中的任何一个即可。

所以:

$bdd = new PDO(

或者:

$req = $db->prepare($sql);

答案 1 :(得分:2)

你的连接变量是$ db,而不是$ bdd