gpt4 book ai didi

php - PDO抛出错误 undefined variable : pdo in

转载 作者:行者123 更新时间:2023-11-29 11:25:15 25 4
gpt4 key购买 nike

我有 3 个文件:dbconnect(这里是 $pdo 的声明)、core.php(包含要管理的类的文件)和 test.php。我想从数据库接收数据,但出现错误:注意: undefined variable :第 24 行 C:\xampp\htdocs\project\core.php 中的 pdo

在 dbconnect $pdo 中,在 try catch 中,但在此之前我输入: $pdo=null (以使变量可访问),但它不起作用。dbconnect ---> core.php(此处错误) ---> test.php;

 //dbconnect.php
<?php
$mysql_host = 'localhost';
$username = 'root';
$password = '';
$database = 'db';

$pdo = null;
try {
$pdo = new PDO('mysql:host='.$mysql_host.';dbname='.$database.';charset=utf8', $username, $password );
}
catch(PDOException $e) {
echo 'Połączenie nie mogło zostać utworzone.<br />';
}

?>

//core.php
require_once('cms/dbconnect.php');
class getCore{
public $link_allegro;
public $link_facebook;


function getLinks(){
$query= $pdo->query('SELECT `url` FROM `links` WHERE `title` = "facebook"');
$row = $query->fetch();
$this->link_facebook = $row["url"];

$query= $pdo->query('SELECT url FROM links WHERE title = "allegro"');
$row = $query->fetch();
$this->link_allegro = $row["url"];

$query->closeCursor();


}
}

//test.php

<?php
require_once('core.php');
$tmp = new getCore;
$tmp->getLinks();

echo $tmp->link_allegro;
echo $tmp->link_facebook;





?>

有人能解决这个问题吗?谢谢。

最佳答案

这是一个范围界定问题。 $pdo 在您的 getCore 类中不存在。您可以创建一个 DatabaseConnect 类来管理您的数据库访问。

您可以使用这个基本类进行数据库连接:

<?php  
class DatabaseConnect {

private $mysql_host = 'localhost';
private $username = 'root';
private $password = '';
private $database = 'db';

private $pdo = null;

public function getPdo(){
return $this->pdo;
}

public function __construct(){
try {
$this->pdo = new PDO('mysql:host='.$mysql_host.';dbname='.$database.';charset=utf8', $username, $password );
}
catch(PDOException $e) {
echo 'Połączenie nie mogło zostać utworzone.<br />';
}
}

}
?>

您可以通过调用 DatabaseConnect object -> getPdo() 在其他类中获取 PDO 实例: - 实例化一个新的DatabaseConnect。 - 使用类的方法获取 PDO 实例。

像这样:

  $databaseConnect = new DatabaseConnect();

$pdo = $databaseConnect->getPdo();

你的下一个代码:

//core.php
require_once('cms/dbconnect.php');
class getCore{
public $link_allegro;
public $link_facebook;


function getLinks(){
$databaseConnect = new DatabaseConnect();
$pdo = $databaseConnect-getPdo();
$query= $pdo->query('SELECT `url` FROM `links` WHERE `title` = "facebook"');
$row = $query->fetch();
$this->link_facebook = $row["url"];

$query= $pdo->query('SELECT url FROM links WHERE title = "allegro"');
$row = $query->fetch();
$this->link_allegro = $row["url"];

$query->closeCursor();
}
}

//test.php

<?php
require_once('core.php');
$tmp = new getCore;
$tmp->getLinks();

echo $tmp->link_allegro;
echo $tmp->link_facebook;

关于php - PDO抛出错误 undefined variable : pdo in,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38333272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com