Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- XenoPdoDblib.class.php
- <?php
- /* vim: set expandtab tabstop=4 shiftwidth=4: */
- // +--------------------------------------------------------+
- // | PHP version 5.x |
- // +--------------------------------------------------------+
- // | Copyright : Song Hyo-Jin <shj at xenosi.de> |
- // +--------------------------------------------------------+
- // | License : BSD |
- // +--------------------------------------------------------+
- //
- // $Id: XenoPdoDblib.class.php, 2016. 8. 31. crucify Exp $
- class XenoPdoDblib extends PDO
- {
- public function __construct($inifile) {
- $config = parse_ini_file($inifile, true);
- $config = $config['pdo'];
- putenv('FREETDSCONF='.$inifile);
- parent::__construct("dblib:host={$config['host']};dbname={$config['db']}", $config['user'], $config['pass'], array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
- }
- public function insert($tableName, $fields) {
- foreach($fields as $k => $v) {
- $fieldNames[] = $k;
- $fieldValues[':'.$k] = $v;
- }
- $stmt = $this->prepare("INSERT INTO $tableName (".implode(', ', $fieldNames).") VALUES (:".implode(', :', $fieldNames).")");
- $stmt->execute($fieldValues);
- return $stmt;
- }
- public function insertAll($tableName, $fields) {
- foreach($fields[0] as $k => $v) {
- $fieldNames[] = $k;
- }
- $stmt = $this->prepare("INSERT INTO $tableName (".implode(', ', $fieldNames).") VALUES (:".implode(', :', $fieldNames).")");
- foreach($fields as $field) {
- $fieldValues = array();
- foreach($field as $k => $v) {
- $fieldValues[':'.$k] = $v;
- $stmt->execute($fieldValues);
- }
- }
- return $stmt;
- }
- public function update($tableName, $fields, $wheres, $whereFields) {
- foreach($fields as $k => $v) {
- $fieldNames[] = $k.' = :'.$k;
- $fieldValues[':'.$k] = $v;
- }
- foreach($whereFields as $k => $v) {
- $fieldValues[':'.$k] = $v;
- }
- $stmt = $this->prepare("UPDATE $tableName SET ".implode(', ', $fieldNames)." WHERE $wheres");
- $stmt->execute($fieldValues);
- return $stmt;
- }
- public function updateAll($tableName, $fields, $wheres, $whereFields) {
- foreach($fields[0] as $k => $v) {
- $fieldNames[] = $k.' = :'.$k;
- }
- $stmt = $this->prepare("UPDATE $tableName SET ".implode(', ', $fieldNames)." WHERE $wheres");
- $cnt = count($fields);
- for($i = 0; $i < $cnt; $i ++) {
- $fieldValues = array();
- foreach($fields[$i] as $k => $v) {
- $fieldValues[':'.$k] = $v;
- }
- foreach($whereFields[$i] as $k => $v) {
- $fieldValues[':'.$k] = $v;
- }
- $stmt->execute($fieldValues);
- }
- return $stmt;
- }
- }
- test.php
- <?php
- error_reporting(E_ALL);
- include_once 'XenoPdoDblib.class.php';
- $db = new XenoPdoDblib(__DIR__.'/mssql.conf');
- $db->beginTransaction();
- $stmt = $db->query("SELECT * FROM qqq");
- print_r($stmt->fetchAll(PDO::FETCH_ASSOC));
- $fields = [
- 'a' => 'b',
- 'c' => 'd'
- ];
- $stmt = $db->insert('qqq', $fields);
- echo 'inserts : ', $stmt->rowCount(), "\n";
- $db->rollback();
- #$db->commit();
- exit;
- mssql.conf
- [sqlserver]
- host = 1.1.1.1
- port = 2433
- tds version = 7.0
- client charset = UTF-8
- [pdo]
- host = sqlserver
- db = product_db
- user = sqluser
- pass = "sqlpw!#$"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement