php - 无法连接到命名空间类中的数据库
问题描述
我连接到数据库然后使用类,我不能在那里使用数据库..我使用命名空间..我是一个初学者,我不太了解它。
我试图寻找解决方案,但找不到任何帮助。如果有帮助,请指导我学习任何教程。
服务器.php
//Connect to database
$host = 'localhost';
$db = 'market';
$user = 'root';
$pass = '';
$dsn = 'mysql:host=localhost;dbname=market';
try {
$pdo = new \PDO($dsn, $user, $pass);
// set the PDO error mode to exception
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(\PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
索引.php
require 'server.php';
require 'vendor/autoload.php';
use App\Product;
$product= new Product;
$product->all();
产品.php
namespace App;
Class Product
{
protected $rate;
protected $name;
protected $cost;
public function all()
{
$sql = 'SELECT product,price,rating FROM products';
$q = $pdo->query($sql);
}
我希望它知道 $pdo 是什么,因为我需要 index.php 中的 server.php 但它会抛出:“致命错误:Uncaught Error: Call to a member function query() on null in Market\src\Product.php:14
请指导我如何在我的课程中连接到数据库..
解决方案
移动你的要求'server.php';在 Product 类的 all () 函数中,它应该像这样工作:
namespace App;
Class Product
{
protected $rate;
protected $name;
protected $cost;
public function all()
{
require_once ('server.php');
$sql = 'SELECT product,price,rating FROM products';
$q = $pdo->query($sql);
}
}
推荐阅读
- python - `filetype plugin` 在哪里定义以及如何覆盖它?
- javascript - StreetAddress 字段 Javascript 中的替换/拆分用法
- xml - 如何通过 go xml marshal 使用 goland 制作嵌套 xml
- javascript - 我的 JavaScript 像素绘图函数不能接受大于 9 的宽度值
- python-3.x - Azure python sdk在blob上循环
- c# - System.PlatformNotSupportedException 仅在作为 docker 映像运行时引用 System.Data.SqlClient
- outlook - Outlook 中用于 MSGraphAccess 的 BootstrapToken
- fortran - 使用 #:if defined('FOO') 编译 Fortran 代码
- linux - 在 bash 中睡觉时显示进度
- javascript - 不存在的导入停止破坏构建