微擎數據庫操作


數據庫操作

1、數據基本操作

tablename()

$sql = "SELECT * FROM ".tablename('users');

echo $sql;

//輸出 SELECT * FROM ims_users

2、范圍條件操作

array('>', '<', '<>', '!=', '>=', '<=', 'NOT IN', 'not in', '+=', '-=');

//獲取adid大於269的公眾號

$accout = pdo_get('account', array('acid >' => '269'));

 

//增加一次用戶的錯誤登錄次數,兩次變為2即可

pdo_update('users_failed_login', array('count +=' => 1),array('username' => 'qiuweinan'));

3、查詢

pdo_get:根據條件(AND連接)到指定的表中獲取一條記錄

array | boolean pdo_get($tablename, $condition = array(), $fields = array());

//根據uid獲取用戶的用戶名和用戶Id信息

//生成的SQL等同於:SELECT username,uid FROM ims_users WHERE uid = '1' LIMIT 1

$user = pdo_get('users', array('uid' => 1), array('username', 'uid'));

 

//生成的SQL等同於:SELECT username FROM ims_users WHERE username = 'qiuweinan' AND status = '1' LIMIT 1

$user = pdo_get('users', array('username' => 'qiuweinan', 'status' => 1), array('username'));

 

pdo_getcolumn:根據條件(AND連接)到指定的表中獲取一條記錄的指定字段

string | int pdo_getcolumn($tablename, $condition = array(), $field);

//根據uid獲取用戶的用戶名

//生成的SQL等同於:SELECT username FROM ims_users WHERE uid = '1' LIMIT1

$username = pdo_getcolumn('users', array('uid' => 1), 'username');

 

pdo_getall:根據條件(AND連接)到指定的表中獲取全部記錄

array | boolean pdo_getall($tablename, $condition = array(), $fields = array(), $keyfiled = '');

//獲取全部啟用的用戶

//生成的SQL等同於:SELECT * FROM ims_users WHERE status = '1'

$user = pdo_getall('users', array('status' => 1));

 

pdo_getslice:根據條件(AND連接)到指定的表中獲取某個區間的記錄,此函數和pdo_getall的區別是可以指定limit的值

array | boolean pdo_getslice($tablename, $condition = array(), $limit = array(), &$total = null, $fileds = array(), $keyfield = '');

$user = pdo_getslice('users', array(), array(0,10), $total);

echo $total;

 

pdo_fetch:根據SQL語句,查詢一條記錄

 array | boolean pdo_fetch($sql, $params = array());

// :uid 是參數的一個點位符,沒有使用引號,傳入的第二個參數中要與SQL中的占位名稱相同

$user = pdo_fetch("SELECT username, uid FROM ".tablename('users')." WHERE uid = :uid LIMIT 1", array(':uid' => 1));

// LIKE 占位的使用方法

$user = pdo_fetch("SELECT * FROM ".tablename('users')." WHERE username LIKE :username", array(':username' => '%qiuweinan%'));

 

pdo_fetchcolumn:根據SQL語句,查詢第一條記錄的第N列的值,此語句與pdo_fetch使用相同,只是此函數返回的不是一個數組而是一個字符串

string | boolean pdo_fetchcolumn($sql, $params = array(), $column = 0);

//獲取用戶的總數,返回的值是一個數字

$user_total = pdo_fetchcolumn("SELECT COUNT(*) FROM ".tablename('users'));

 

pdo_feachall:根據SQL語句,查詢全部記錄,使用方法與pdo_feach相同

array | boolean pdo_fetchall($sql, $params = array(), $keyfield = '');

//需要注意的是,返回的數組的鍵值為用戶的uid

$user = pdo_fetchall("SELECT username,uid FROM ".tablename('users'), array(), 'uid');

4、變更

pdo_insert:對指定數據表插入一條新記錄

int | boolean pdo_insert($tablename, $data = array(), $replace = false);

//添加一條用戶記錄,並判斷是否成功

$user_data = array(

  'username' => 'qiuweinan1',

  'status' => '1',

);

$result = pdo_insert('users', $user_data);

if(!empty($result)){

  $uid = pdo_insertid();

  message('添加用戶成功,UID為' .$uid);

}

 

pdo_update:更新指定的數據表記錄

array | boolean pdo_updata($tablename, $data = array(), $condition, $glue = 'AND');

//更新uid=2的用戶的用戶名

$user_data = array(

  'username' => 'qiuweinan2',

);

$result = pdo_update('users', $user_data, array('id' =>2));

if(!empty($result)){

  message('更新成功');

}

 

pdo_delete:刪除指定條件的數據

int | boolean pdo_delete($tablename, $condition = array(), $glue = 'AND');

//刪除用戶名為qiuweinan2的記錄

$result = pdo_delete('users', array('username' => 'qiuweinan2'));

if(!empty($result)){

  message('刪除成功');

}

5、運行SQL

pdo_query:運行一條SQL語句

int | boolean pdo_query($sql, $params = array());

//更新uid=2的用戶的用戶名

$result = pdo_query("UPDATA ".tablename('users')." SET username = :username, age = :age WHERE uid = :uid", array(':username' => 'qiuweinan2', ':age' => 18, ':uid' => 2));

//刪除用戶名為qiuweinan2的記錄

$result = pdo_query("DELETE FROM ".tablename('users')." WHERE username = :username", array(':username' => 'qiuweinan2'));

if(!empty($result)){

  message('刪除成功');

}

 

pdo_run:批量執行語句

boolean run($sql, $stuff = 'ims_');

$sql = <<<EOF

CREATE TABLE IF NOT EXISTS `ims_multisearch` (

  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,

  `weid` int(10) unsigned NOT NULL,

  PRIMARY KEY (`id`)

)ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `ims_multisearch_fields` (

  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,

  `reid` int(10) unsigned NOT NULL,

  `type` tinyint(1) unsigned NOT NULL DEFAULT `1`,

  PRIMARY KEY(`id`),

  KEY 'idx_reid' (`reid`)

)ENGINE=MyISAM DEFAULT CHARSET=utf8;

EOF;

pdo_run($sql);

6、輔助函數

pdo_fieldexists:檢查表中是否存在某個字段

boolean pdo_fieldexists($tablename, $fieldname);

//如果shopping_goods表中不存在credit字段,則新增credit字段

if(!pdo_fieldexists('shopping_goods', 'credit')) {

  pdo_query("ALTER TABLE ".tablename('shopping_goods')." ADD `credit` int(11) NOT NULL DEFAULT '0';");

}

 

pdo_indexexists:檢查表中是否存在某個索引

boolean pdo_indexexists($tablename, $indexname);

//如果site_slide表中不存在multiid索引,則新增multiid索引

if(!pdo_indexexists('site_slide', 'multiid')) {

  pdo_query("ALTER TABLE ".tablename('site_slide')." ADD INDEX `multiid` (`multid`);")

}

 

pdo_tableexists:檢查數據庫中是否存在某個表

boolean pdo_tableexists($tablename);

 

pdo_debug:調試運行SQL語句,顯示執行過的SQL的棧情況

array pdo_debug($output = true, $append = array());

pdo_debug();

//調用該函數結果如下

Array

(

[0] => Array

  (

    [sql] => SET NAMES 'utf8';

    [error] => Array

      (

        [0] => 00000

        [1] =>

        [2] =>

      )

  )

[1] => Array

  (

    [sql] => SELECT `value` FROM `ims_core_cache` WHERE `key`=:key

    [params] => Array

      (

        [:key] => setting

      )

    [error] => Array

      (

        [0] => 00000

        [1] =>

        [2] =>

      )

  )

)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM