Reputation: 81
<?php
class DB {
private static function connect() {
$pdo = new PDO('mysqli:host=localhost;dbname=SocialNetwork;charset=utf8', 'root', '');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;
}
public static function query($query, $params = array()) {
$statement = self::connect()->prepare($query);
$statement->execute($params);
if (explode(' ', $query)[0] == 'SELECT') {
$data = $statement->fetchAll();
return $data;
}
}
}
When i try to insert data in the db it gets this error:
Fatal error: Uncaught PDOException: could not find driver in C:\xampp\htdocs\social-media\classes\DB.php:5 Stack trace: #0 C:\xampp\htdocs\social-media\classes\DB.php(5): PDO->__construct('mysqli:host=loc...', 'root', '') #1 C:\xampp\htdocs\social-media\classes\DB.php(11): DB::connect() #2 C:\xampp\htdocs\social-media\create-account.php(10): DB::query('SELECT username...', Array) #3 {main} thrown in C:\xampp\htdocs\social-media\classes\DB.php on line 5
Upvotes: 0
Views: 498
Reputation: 4952
The driver name is not correct. Use "mysql:..."
$pdo = new PDO('mysql:host=localhost;dbname=SocialNetwork;charset=utf8', 'root', '');
Upvotes: 0
Reputation: 1785
You need to activate pdo_mysql
in your php.ini
Look for a row with extension=php_pdo_mysql.dll
using CTRL+F
and restart your web environment.
Upvotes: 0