Azalea\MysqlModel

MysqlModel Mysql 數(shù)據(jù)庫(kù)服務(wù)模塊類

?? 要使用 Azalea\MysqlModel 必須在配置中聲明使用 $config['node-beauty']['mysql'] = 1


?? MysqlModel 構(gòu)造函數(shù)已私有劳秋,無法通過 new 方式實(shí)例化吸申,僅通過 控制器模塊getModel 方法獲得

// in controller-action
$mysqlModel = $this->getModel('mysql');
$data = $mysqlModel->getSqlBuilder()
      ->from('test')
      ->orderBy('status')
      ->query()
      ->all();
$result = $mysqlModel->insert('test', [ 'foo' => 'bar' ]);

目錄


MysqlSqlBuilder <small>SQL 構(gòu)建類</small>
MysqlResult <small>SQL 查詢結(jié)果類</small>
MysqlQueryResult <small>查詢結(jié)果類</small>
MysqlExecuteResult <small>執(zhí)行結(jié)果類</small>

MysqlModel::escape


轉(zhuǎn)義 SQL 字符串

mixed MysqlModel::escape ( mixed $value )
  • 參數(shù)
    $value - 需要轉(zhuǎn)移的字符串或數(shù)組

  • 返回值
    根據(jù)傳入類型返回

參數(shù)類型 返回值類型
字符串 字符串
整型 字符串
浮點(diǎn)型 字符串
布爾型 字符串 "1"/"0"
NULL 字符串 "NULL"
數(shù)組 數(shù)組
  • 范例
$mysqlModel->escape("This's\nAzalea.");
// 返回 This\'s\nAzalea.
$mysqlModel->escape([ 'fo"o' => 'ba"r', 'hello', 'world' ]);
// 返回
// [
//   fo\"o => ba\"r,
//   hello,
//   world,
// ]

MysqlModel::query


執(zhí)行 SQL 查詢

MysqlResult MysqlModel::query ( string $sql [, mixed $binds = null [, bool $throwsException = true]] )
  • 參數(shù)
    $sql - 需要查詢的 SQL。SQL 中可帶占位符丛楚,并根據(jù)第二個(gè)參數(shù) $binds 進(jìn)行綁定并轉(zhuǎn)義
    $binds - 查詢綁定數(shù)組,第一個(gè)元素綁定 SQL 中第一個(gè)占位符憔辫,第二個(gè)元素綁定 SQL 中第二個(gè)占位符趣些,以此類推
    $throwsException - 是否拋出異常,默認(rèn)為 true
占位符 描述
?? SQL 關(guān)鍵字贰您,如表名坏平、字段名拢操,轉(zhuǎn)以后會(huì)加上 "\"`
? SQL 值
如果是數(shù)字鍵,則執(zhí)行 escape舶替;
如果是字符串鍵令境,則執(zhí)行 eacape 后用 = 連接
  • 返回值
    查詢結(jié)果對(duì)象
結(jié)果類型 描述
MysqlResult 默認(rèn)結(jié)果,查詢出錯(cuò)時(shí)返回($throwsException = false
MysqlQueryResult 查詢結(jié)果顾瞪,如 DQL舔庶,SELECTSHOW 等玲昧,繼承于 MysqlResult
MysqlExecuteResult 執(zhí)行結(jié)果栖茉,如 DDL、DML孵延,INSERT吕漂,UPDATEDELETE 等尘应,繼承于 MysqlResult
  • 范例
$result = $mysqlModel->query('SELECT ?? FROM ?? WHERE ? AND ?? = ?',
      [ 'name', 'table', 'foo' => 'bar', 'hello', true ]);
// 執(zhí)行查詢 SQL
// SELECT `name` FROM `table` WHERE `foo` = "bar" AND `hello` = "1"
// 執(zhí)行成功則返回 MysqlQueryResult 對(duì)象

MysqlModel::getQueries


獲取查詢 SQL 歷史記錄

mixed MysqlModel::getQueries ( void )
  • 參數(shù)

  • 返回值
    查詢記錄數(shù)組

  • 范例

$mysqlModel->getQueries();
// 返回執(zhí)行過的 SQL 數(shù)組
// [
//   SELECT * FROM `test`,
//   INSERT ...
// ]

MysqlModel::insert


執(zhí)行插入查詢

MysqlResult MysqlModel::insert ( string $table, array $set [, bool $ignoreErrors = false [, bool $duplicateKeyUpdate = false [, bool $throwsException = true]]] )
  • 參數(shù)
    $table - 表名
    $set - 插入值數(shù)組惶凝。必須為鍵值對(duì)數(shù)組,鍵為字段名犬钢,值為插入值苍鲜;若批量插入,則為二維數(shù)組
    $ignoreErrors - 是否加入 IGNORE 關(guān)鍵字玷犹,默認(rèn)為 false混滔,常用于重復(fù)鍵插入
    $duplicateKeyUpdate - 是否加入 ON DUPLICATE KEY UPDATE 關(guān)鍵字,默認(rèn)為 false
    $throwsException - 是否拋出異常歹颓,默認(rèn)為 true

  • 返回值
    執(zhí)行結(jié)果對(duì)象

  • 范例

$mysqlModel->insert('table', [ 'foo' => 'bar', 'hello' => true ], true, true);
// 執(zhí)行插入 SQL
// INSERT IGNORE INTO `table` (`foo`,`hello`) VALUES ("bar","1") ON DUPLICATE KEY UPDATE `foo` = VALUES(`foo`),`hello` = VALUES(`hello`)

MysqlModel::replace


執(zhí)行替換查詢

MysqlResult MysqlModel::replace ( string $table, array $set [, bool $throwsException = true] )
  • 參數(shù)
    $table - 表名
    $set - 替換值數(shù)組坯屿。必須為鍵值對(duì)數(shù)組,鍵為字段名巍扛,值為插入值领跛;若批量替換,則為二維數(shù)組
    $throwsException - 是否拋出異常撤奸,默認(rèn)為 true

  • 返回值
    執(zhí)行結(jié)果對(duì)象

  • 范例

$mysqlModel->replace('table', [ 'foo' => 'bar', 'hello' => true ]);
// 執(zhí)行替換 SQL
// REPLACE INTO `table` (`foo`,`hello`) VALUES ("bar","1")

MysqlModel::update


執(zhí)行更新查詢

MysqlResult MysqlModel::update ( string $table, array $set [, mixed $where = null [, bool $throwsException = true]] )
  • 參數(shù)
    $table - 表名
    $set - 更新值數(shù)組吠昭。必須為鍵值對(duì)數(shù)組,鍵為字段名胧瓜,值為插入值
    $where - 條件數(shù)組矢棚,默認(rèn)為 null,即 全表 替換
    $throwsException - 是否拋出異常贷痪,默認(rèn)為 true

  • 返回值
    執(zhí)行結(jié)果對(duì)象

  • 范例

$mysqlModel->update('table', [ 'foo' => 'bar', 'hello' => true ], [ 'status IN' => [ 1, 2, 3 ]]);
// 執(zhí)行更新 SQL
// UPDATE `table` SET `foo` = "bar",`hello` = "1" WHERE `status` IN ("1","2","3")

MysqlModel::delete


執(zhí)行刪除查詢

MysqlResult MysqlModel::delete ( string $table [, mixed $where = null [, bool $throwsException = true]] )
  • 參數(shù)
    $table - 表名
    $where - 條件數(shù)組幻妓,默認(rèn)為 null,即 全表 刪除
    $throwsException - 是否拋出異常,默認(rèn)為 true

  • 返回值
    執(zhí)行結(jié)果對(duì)象

  • 范例

$mysqlModel->delete('table', [ 'foo' => 'bar', 'status IN' => [ 1, 2, 3 ]]);
// 執(zhí)行刪除 SQL
// DELETE FROM `table` WHERE `foo` = "bar" AND `status` IN ("1","2","3")

MysqlModel::getSqlBuilder


獲取 SQL 構(gòu)建對(duì)象

MysqlSqlBuilder MysqlModel::getSqlBuilder ( void )
$mysqlModel->getSqlBuilder()
      ->from('test')
      ->orderBy('status');
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末肉津,一起剝皮案震驚了整個(gè)濱河市强胰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌妹沙,老刑警劉巖偶洋,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異距糖,居然都是意外死亡玄窝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門悍引,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恩脂,“玉大人,你說我怎么就攤上這事趣斤×┛椋” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵浓领,是天一觀的道長(zhǎng)玉凯。 經(jīng)常有香客問我,道長(zhǎng)联贩,這世上最難降的妖魔是什么漫仆? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮泪幌,結(jié)果婚禮上盲厌,老公的妹妹穿的比我還像新娘。我一直安慰自己祸泪,他們只是感情好狸眼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著浴滴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪岁钓。 梳的紋絲不亂的頭發(fā)上升略,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音屡限,去河邊找鬼品嚣。 笑死,一個(gè)胖子當(dāng)著我的面吹牛钧大,可吹牛的內(nèi)容都是我干的翰撑。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼啊央,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼眶诈!你這毒婦竟也來了涨醋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤逝撬,失蹤者是張志新(化名)和其女友劉穎浴骂,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宪潮,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡溯警,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了狡相。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梯轻。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖尽棕,靈堂內(nèi)的尸體忽然破棺而出喳挑,到底是詐尸還是另有隱情,我是刑警寧澤萄金,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布蟀悦,位于F島的核電站,受9級(jí)特大地震影響氧敢,放射性物質(zhì)發(fā)生泄漏日戈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一孙乖、第九天 我趴在偏房一處隱蔽的房頂上張望浙炼。 院中可真熱鬧,春花似錦唯袄、人聲如沸弯屈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)资厉。三九已至,卻和暖如春蔬顾,著一層夾襖步出監(jiān)牢的瞬間宴偿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工诀豁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留窄刘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓舷胜,卻偏偏與公主長(zhǎng)得像娩践,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容