这可能是
一个愚蠢的问题,但我无法解决它。
我有PDO连接(BD.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"
)
);
?>
但是我收到此错误:
致命错误:在 Index 上的非对象上调用成员函数 prepare(.php,在第 6 行
这是我的"索引.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内容,不重要)
看起来$req = $bdd->prepare($sql);
就是你的问题所在。
在bdd.php
内部,您将数据库连接分配给$db
。
只需更改它们中的任何一个,使它们相同。
因此,请执行以下任一操作:
$bdd = new PDO(
或:
$req = $db->prepare($sql);
你的连接变量是$db,而不是$bdd