Здравствуйте. При инсталяции , выбираю PDO. В php.ini все подключено. При выполнении простых селектов все работает норм, а при желании запустить prepare, выводится ошибка непонимания.
/*работает*/
$sql="select * from table where a=".$a;
$query = $this->db->query($sql);
$result=$query->row;
/*выдает ошибку*/
$sql="select * from table where =?";
$prepare=$this->db->prepare($sql);
Если создаю вручную коннект и его использую, всё нормально.
/*так работает*/
$dsn = "mysql:host=" . DB_HOSTNAME . ";dbname=" . DB_DATABASE . ";charset=UTF8";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::MYSQL_ATTR_LOCAL_INFILE => true,
PDO::ATTR_PERSISTENT => true
];
try {
$conn = new PDO($dsn, DB_USERNAME, DB_PASSWORD, $opt);
} catch (PDOException $e) {
echo "Error: " . $e->getMessage()."<br>";
}
$prepare=$conn->prepare($sql);
Вопрос:$this->db как то можно заставить работать с PDO prepare или это я ее неправильно вызываю?