PHP PDO を使用して MySQL データベースにアクセスするこのスクリプトがありますが、問題は私のホスティング プロバイダーが PHP PDO を無効にしていることです。
<?php
class DbHandler {
private $dbname = '**********';
private $host = '**********';
private $user = '**********';
private $pass = '**********';
public $dbh;
private $sth;
public function __construct()
{
try{
$this->dbh = new PDO("mysql:$this->host=localhost;dbname=$this->dbname", $this->user, $this->pass);
}
catch(PDOException $e){
echo 'Unable to connect to database!';
}
}
// Retrive all replays from the database
public function selectAll($offset, $rowsperpage){
$this->sth = $this->dbh->query("SELECT game_id, game_title,game_date_upload,game_file_name FROM games ORDER BY game_id DESC LIMIT $offset, $rowsperpage");
$this->sth->setFetchMode(PDO::FETCH_ASSOC);
$replays = $this->sth->fetchAll();
return $replays;
}
// Return number of replays from db
public function numOfReplays(){
$this->sth = $this->dbh->query("SELECT game_id FROM games");
$this->sth->setFetchMode(PDO::FETCH_ASSOC);
$replays = $this->sth->fetchAll();
$numOfReplays = count($replays);
return $numOfReplays;
}
// Search db
public function search1($search_text, $offset, $rowsperpage){
$this->sth = $this->dbh->query("SELECT game_id, game_title,game_date_upload,game_file_name FROM games WHERE game_title LIKE '%$search_text%' ORDER BY game_id DESC LIMIT $offset, $rowsperpage");
$this->sth->setFetchMode(PDO::FETCH_ASSOC);
$replays = $this->sth->fetchAll();
return $replays;
}
public function search($search_text, $offset, $rowsperpage){
$search_text = '%' . $search_text . '%';
$this->sth=$this->dbh->prepare("SELECT game_id, game_title,game_date_upload,game_file_name FROM games WHERE game_title LIKE ? ORDER BY game_id DESC LIMIT $offset, $rowsperpage");
$this->sth->setFetchMode(PDO::FETCH_ASSOC);
$this->sth->execute(array($search_text));
$replays = $this->sth->fetchAll();
return $replays;
}
public function numOfSearchResults($search_text){
$search_text = '%' . $search_text . '%';
$this->sth = $this->dbh->prepare("SELECT game_id FROM games WHERE game_title LIKE ?");
$this->sth->setFetchMode(PDO::FETCH_ASSOC);
$this->sth->execute(array($search_text));
$replays = $this->sth->fetchAll();
$numOfReplays = count($replays);
return $numOfReplays;
}
// Retrieve last five uploaded replays
public function latestReplays(){
$this->sth = $this->dbh->query("SELECT game_title,game_file_name FROM games ORDER BY game_date_upload DESC LIMIT 2");
$this->sth->setFetchMode(PDO::FETCH_ASSOC);
$lastReplays = $this->sth->fetchAll();
return $lastReplays;
}
// Insert replay data in db
public function exec($data=array())
{
$this->sth = $this->dbh->prepare("INSERT INTO games(game_title,game_description,game_file_name) values(?,?,?)");
$this->sth->execute($data);
}
}
?>
このMySQLテストスクリプトを使用して接続したため、データベースは正常に動作し、動作します。
<?php
mysql_connect("myhost.com", "username", "password") or die(mysql_error());
echo "Connected to MySQL<br/>";
?>