Here is the class I have:
Connection.class.php
<?php
class Connection {
public static $conn;
//lê o arquivo .ini com as config
public static function open($name) {
if (file_exists("config/{$name}.ini")) {
$db = parse_ini_file("config/{$name}.ini");
} else {
throw new exception("Arquivo '$name' nao encontrado");
}
$user = isset($db['user']) ? $db['user'] : NULL;
$pass = isset($db['pass']) ? $db['pass'] : NULL;
$name = isset($db['name']) ? $db['name'] : NULL;
$host = isset($db['host']) ? $db['host'] : NULL;
$type = isset($db['type']) ? $db['type'] : NULL;
$port = isset($db['port']) ? $db['port'] : NULL;
switch ($type) {
case 'pgsql':
$port = $port ? $port : '5432';
$conn = new PDO("pgsql:dbname={$name}; user={$user}; password={$pass};host=$host;port={$port};");
break;
case 'mysql':
$port = $port ? $port : '3306';
$conn = new PDO("mysql:host={$host};port={$port};dbname={$name}", $user, $pass);
break;
case 'sqlite':
$conn = new PDO("sqlite:{$name}");
break;
case 'ibase':
$conn = new PDO("firebird:dbname={$name}", $user, $pass);
break;
case 'oci8':
$conn = new PDO("oci:dbname={$name}", $user, $pass);
break;
case 'mssql':
$conn = new PDO("mssql:host={$host},1433;dbname={$name}", $user, $pass);
break;
}
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
self::$conn = $conn;
}
public static function select($sql) {
return self::$conn->query($sql);
}
public static function exec($sql, $ret_id = false) {
$retorno = self::$conn->exec($sql);
if ($ret_id)
$retorno = self::$conn->lastInsertId();
return $retorno;
}
public static function close() {
self::$conn = null;
}
}
ibase.ini
host =
name = localhost/dados/banco.fdb
user = SYSDBA
pass = 1234
type = ibase
The class call would look like this:
Connection::open('ibase');
$sql = Connection::select('SELECT * FROM banco');//Select
$sql = Connection::exec('INSERT INTO banco (campo) VALUES ('Teste')');//Insert
Connection::close('ibase');
Do not forget to add the package below: