diff options
author | Stanislau Wolski <stanislau.wolski@gmail.com> | 2017-03-01 14:56:45 +0300 |
---|---|---|
committer | Stanislau Wolski <stanislau.wolski@gmail.com> | 2017-03-01 14:56:45 +0300 |
commit | 8b5f2010bbc463f362bd2e52e2c6625dd45c6861 (patch) | |
tree | 743a75a4bc796895c2bcd5809342691bb85b60d0 /codebase/db_mysql.php | |
parent | 2f82b184637189055abf3cda08abf084a433116e (diff) | |
download | connector-php-8b5f2010bbc463f362bd2e52e2c6625dd45c6861.zip connector-php-8b5f2010bbc463f362bd2e52e2c6625dd45c6861.tar.gz connector-php-8b5f2010bbc463f362bd2e52e2c6625dd45c6861.tar.bz2 |
[update] connector uses PDO by defaultHEADorigin/masterorigin/HEADmaster
Diffstat (limited to 'codebase/db_mysql.php')
-rw-r--r-- | codebase/db_mysql.php | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/codebase/db_mysql.php b/codebase/db_mysql.php new file mode 100644 index 0000000..d31d210 --- /dev/null +++ b/codebase/db_mysql.php @@ -0,0 +1,67 @@ +<?php + +/*! Implementation of DataWrapper for MySQL +**/ +class MySQLDBDataWrapper extends DBDataWrapper{ + protected $last_result; + public function query($sql){ + LogMaster::log($sql); + $res=mysql_query($sql,$this->connection); + if ($res===false) throw new Exception("MySQL operation failed\n".mysql_error($this->connection)); + $this->last_result = $res; + return $res; + } + + public function get_next($res){ + if (!$res) + $res = $this->last_result; + + return mysql_fetch_assoc($res); + } + + public function get_new_id(){ + return mysql_insert_id($this->connection); + } + + public function escape($data){ + return mysql_real_escape_string($data, $this->connection); + } + + public function tables_list() { + $result = mysql_query("SHOW TABLES"); + if ($result===false) throw new Exception("MySQL operation failed\n".mysql_error($this->connection)); + + $tables = array(); + while ($table = mysql_fetch_array($result)) { + $tables[] = $table[0]; + } + return $tables; + } + + public function fields_list($table) { + $result = mysql_query("SHOW COLUMNS FROM `".$table."`"); + if ($result===false) throw new Exception("MySQL operation failed\n".mysql_error($this->connection)); + + $fields = array(); + $id = ""; + while ($field = mysql_fetch_assoc($result)) { + if ($field['Key'] == "PRI") + $id = $field["Field"]; + else + $fields[] = $field["Field"]; + } + return array("fields" => $fields, "key" => $id ); + } + + /*! escape field name to prevent sql reserved words conflict + @param data + unescaped data + @return + escaped data + */ + public function escape_name($data){ + if ((strpos($data,"`")!==false || is_int($data)) || (strpos($data,".")!==false)) + return $data; + return '`'.$data.'`'; + } +}
\ No newline at end of file |