トラブルシューティングに何時間も費やした後、私のホスト (hosting2go.nl) が PDO::mysql をサポートしていないことがわかりました。ドライバーをインストールしていないため、MVC フレームワークの Model.php が壊れています。データベース接続の問題を解決しました。問題は、私が mysqli に完全に慣れていないことです。私の model.php (PDO::mysql 用に作成) を Mysqli (PDO ではなく) 用に作成する方法を見つけることができません。皆さんが私を助けてくれることを願っています... 私のコード:
|元の PDO モデル.PHP|
class Model
{
function __construct()
{
$this->db = new Database;
$this->data = $_POST;
}
public function query( $data = array(), $query){
try{
$result = $this -> db -> prepare($query);
$result->execute($data);
$result = $result->fetchAll(PDO::FETCH_ASSOC);
return $result;
}catch(PDOException $e){
echo $e;
}
}
|私のデータベース接続|
class Database extends mysqli {
public function __construct() {
parent::__construct("localhost","root","","bartsite");
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
}
}
|これは、私の model.php FOR MYSQLI で作成したものです|
class Model
{
function __construct()
{
$this->db = new Database;
$this->data = $_POST;
}
public function query( $data = array(), $query){
try{
echo $query;
$result = $this -> db -> prepare($query);
$result = $this -> db -> query($data);
$result->fetch_all();
//$result->execute($data);
//$result = $result->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
echo $e;
}
}
}
|コントローラの便利な部分|
public function index(){
$data = $this->posts->getAllPosts();
var_dump($data);
$this->view->render("posts/index",$data);
return true;
}
|posts.models.php| class postsModel extends Model {
function __construct()
{
parent::__construct();
}
public function getAllPosts(){
$result = $this->query(
array(),
"SELECT * FROM posts ORDER BY id DESC"
);
return $result;
}