我在Raspbian上有一个apache2 Web服务器。我的一个PHP文件有一些问题...
该文件应该执行以下操作:使用MySQLi或PDO在我的数据库上检查项目是否托管在我的数据库中或我的Github帐户中,然后它获取内容(在db中或使用GitHub API)显示在我的数据库中页面。
我检查项目是否存在的部分在其他文件中工作正常。 使用PDO在数据库中获取项目内容的部分也可以在其他文件中使用(也可以在MySQLi中使用)。 我使用GitHub API获得项目的部分可以在其他文件中使用...
但是当我将所有这些添加到一个文件中时,出现了HTTP 500错误...
在CLI中,我检查了文件中的错误:
PHP Notice: Undefined variable: db in /var/www/html/projet.php on line 21
PHP Fatal error: Uncaught Error: Call to a member function prepare() on null in /var/www/html/projet.php:21
Stack trace:
#0 {main}
thrown in /var/www/html/projet.php on line 21
我验证了PDO和MySQLi扩展是否已激活。被激活了。 我试图更改var名称...也不起作用。 我尝试了PDO和MySQLi。同样的问题... 我重新启动了Apache2和MySQL。
这是我的php.ini:http://myfic.ga/phpinfo.jpg。 这是我的config.php文件的一部分,在其中声明数据库:
try {
$db = new PDO("mysql:host=".DBHOST.";charset=utf8mb4;dbname=".DBNAME, DBUSER, DBPASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch(PDOException $e) {
$dbError = $e->getMessage();
}
这是我遇到错误的项目页面。
<?php
// I include the config and composer files
require 'index-fichiers/config.php';
require 'vendor/autoload.php';
use Milo\Github;
use erusev\parsedown;
// I check if the project's ID is in the URL
if (!isset($_SERVER['QUERY_STRING'])) {
// If it's not, I redirect elsewhere
} else {
// I get the project in the database
$stmt = $db->prepare("SELECT ID, github, nom, date, descriptionCourte, texte, telechargeable, dlLien FROM projets WHERE ID = :ID"); // That's line 21
$stmt->execute(array(':ID' => $_SERVER['QUERY_STRING']));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if (!isset($row['nom'])) {
// The project doesn't exists
} else {
// The project exists
}
. . .
这很奇怪,因为相同的代码段可以在我的其他文件中使用... 我希望我写的东西不多,希望你能帮我。