我想与保留查询的PHP中的其他类共享MySQL连接.
因此MySQL.php包含:
$user = 'username';
$passowrd = 'password';
$conn = new PDO('mysql:host=ip;dbname=DBName;port=3306',$user,$passowrd);
?>
我称为MyLibrary.php的php文件包含:
include 'DB.php';
class Manager {
function jsonQuery() {
$response = array ();
$st = $conn->query ( "query");
$response ["results"] = array ();
foreach ( $st->fetchAll () as $row ) {
//my stuff with the query
}
$response ["success"] = 1;
echo json_encode ( $response );
}
}
$object = new Manager();
$object->jsonQuery();
?>
那我该怎么办?
解决方法:
它称为dependency injection,易于实现.您在实例化参数时将其直接传递到类中.这样,您就可以实现它一次以上,并在代码库中共享该实例
class Manager {
/** @var \PDO */
protected $pdo;
public function __construct(\PDO $pdo) {
$this->pdo = $pdo;
}
public function jsonQuery() {
$response = array ();
$st = $this->pdo->query("query");
$response ["results"] = array();
foreach ( $st->fetchAll() as $row ) {
//my stuff with the query
}
$response ["success"] = 1;
echo json_encode($response);
}
}
$object = new Manager($conn);
标签:mysql,php
来源: https://codeday.me/bug/20191120/2041130.html