/** * Class สำหรับเชื่อมต่อกับ database. * * @param type $param * * @return resource Database resource */ public function connect($param) { // parse the URL from the DSN string if (($dns = @parse_url($param)) === false) { \Core\Gcms::debug('Invalid DB connection string.'); } $params = array('dbdriver' => strtolower($dns['scheme']), 'hostname' => isset($dns['host']) ? rawurldecode($dns['host']) : '', 'port' => isset($dns['port']) ? $dns['port'] : '', 'username' => isset($dns['user']) ? rawurldecode($dns['user']) : '', 'password' => isset($dns['pass']) ? rawurldecode($dns['pass']) : '', 'dbname' => isset($dns['path']) ? rawurldecode(substr($dns['path'], 1)) : ''); if (isset($dsn['query'])) { parse_str($dsn['query'], $extra); foreach ($extra as $key => $val) { if (is_string($val) && in_array(strtoupper($val), array('TRUE', 'FALSE', 'NULL'))) { $val = var_export($val, true); } $params[$key] = $val; } } // inint database class require_once ROOT_PATH . 'core/database/driver.php'; if (!in_array($params['dbdriver'], array('mysqli')) && defined('PDO::ATTR_DRIVER_NAME')) { require_once ROOT_PATH . 'core/database/pdo_driver.php'; // driver string $driver = 'PDO_driver'; } elseif (is_file(ROOT_PATH . 'core/database/' . $params['dbdriver'] . '_driver.php')) { // โหลดจาก driver ที่กำหนด require_once ROOT_PATH . 'core/database/' . $params['dbdriver'] . '_driver.php'; // driver string $driver = strtoupper($params['dbdriver']) . '_driver'; } else { if (!empty($driver)) { \Core\Gcms::debug('You have not selected a database type to connect to.'); } $driver = 'Driver'; } // inint class $db = new $driver($params); // return class return $db; }
/** * ประมวลผลคำสั่ง SQL สำหรับสอบถามข้อมูล คืนค่าผลลัพท์เป็นแอเรย์ของข้อมูลที่ตรงตามเงื่อนไข. * * @param string $sql query string * * @return array คืนค่าผลการทำงานเป็น record ของข้อมูลทั้งหมดที่ตรงตามเงื่อนไข ไม่พบข้อมูลคืนค่าเป็น array ว่างๆ */ public function customQuery($sql) { $result = $this->_customQuery($sql); if ($result === false) { \Core\Gcms::debug($sql, $this->error_message); return array(); } else { return $result; } }