【发布时间】:2021-10-22 08:34:03
【问题描述】:
我正在使用 OOP PHP 和 PDO 开发数据库连接,但遇到此错误:
警告:第 29 行 C:\xampp\htdocs\VICAS\assets\dbfiles\config.php 中的数组到字符串转换 致命错误:未捕获的类型错误:PDO::__construct(): 参数 #4 ($options) 必须是 ?array 类型,字符串在 C:\xampp\htdocs\VICAS\assets\dbfiles\config.php:29 堆栈跟踪: #0 C:\xampp\htdocs\VICAS\assets\dbfiles\config.php(29): PDO->__construct('mysql:host=loca...', 'root', '', 'Array') #1 C:\xampp\htdocs\VICAS\pageincludes\image.php(4): vicass->__construct() #2 {main} 在 C:\xampp\htdocs\VICAS\assets\dbfiles\config.php 中抛出第 29 行
我是 OOP 的新手,因此我们将不胜感激。
<?php
class vicass
{
var $host;
var $username;
var $password;
var $database;
var $connect;
var $home_page;
var $query;
var $data;
var $statement;
var $filedata;
var $options;
function __construct()
{
$this->host = 'localhost';
$this->username = 'root';
$this->password = '';
$this->database = 'vicas';
$this->home_page = 'http://localhost/Vicas/index.php';
$this->options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
PDO::ATTR_EMULATE_PREPARES => false,
);
$this->connect = new PDO("mysql:host=$this->host; dbname=$this->database", "$this->username", "$this->password", "$this->options");
session_start();
}
function execute_query()
{
$this->statement = $this->connect->prepare($this->query);
$this->statement->execute($this->data);
}
function total_row()
{
$this->execute_query();
return $this->statement->rowCount();
}
function redirect($page)
{
header('location:'.$page.'');
exit;
}
}
?>
如果我排除选项,那么它可以工作,但我需要添加那些 选项...请指导我。
【问题讨论】: