php如何嫵媚地生成執行的sql語句
會不會碰到這樣一種情況呢?每次獲取資料將資料和歷史版本都有一定的差別,然而用ThinkPHP的addAll()函式,卻會將已有的資料刪掉再重新寫入。這明顯不是我們想要的。但自己寫sql每次幾十個欄位也是醉了。如何優雅而又輕鬆地實現sql的自動生成呢?於是有了下面這個方法。
/** * [array_to_sql 根據陣列key和value拼接成需要的sql] * @param [type] $array [key, value結構陣列] * @param string $type [sql型別insert,update] * @param array $exclude [排除的欄位] * @return [string] [返回拼接好的sql] */ function array_to_sql($array, $type=`insert`, $exclude = array()){ $sql = ``; if(count($array) > 0){ foreach ($exclude as $exkey) { unset($array[$exkey]);//剔除不要的key } if(`insert` == $type){ $keys = array_keys($array); $values = array_values($array); $col = implode("`, `", $keys); $val = implode("`, `", $values); $sql = "(`$col`) values(`$val`)"; }else if(`update` == $type){ $tempsql = ``; $temparr = array(); foreach ($array as $key => $value) { $tempsql = "`$key` = `$value`"; $temparr[] = $tempsql; } $sql = implode(",", $temparr); } } return $sql; }
當然,這個方法還有很多可以斟酌的地方。能用,但不是最好的。園子的猿猿們你們有更好的方法嗎?請告訴我吧!
相關文章
- sql語句如何執行的SQL
- php連線mysql並執行sql語句PHPMySql
- mysql如何跟蹤執行的sql語句MySql
- 執行大的sql語句SQL
- Java中如何解析SQL語句、格式化SQL語句、生成SQL語句?JavaSQL
- 一條update SQL語句是如何執行的SQL
- 一條SQL更新語句是如何執行的SQL
- 一條SQL更新語句是如何執行的?SQL
- sql語句批量執行SQL
- 一條更新的SQL語句是如何執行的?SQL
- mysql的sql語句執行流程MySql
- SQL 語句的執行順序SQL
- oracle 中如何顯示sql語句的執行時間和sql語句的執行後的當前時間OracleSQL
- PHP執行批量mysql語句PHPMySql
- 一條 SQL 查詢語句是如何執行的?SQL
- 一條SQL語句在MySQL中如何執行的MySql
- 查詢正在執行的sql語句及該語句執行的時間SQL
- SQL語句執行順序SQL
- toad執行sql語句SQL
- 輸入的查詢 SQL 語句,是如何執行的?SQL
- SQL Server SQL語句執行順序SQLServer
- 通過分析SQL語句的執行計劃優化SQL語句SQL優化
- Laravel 獲取執行的sql語句LaravelSQL
- 查詢執行慢的SQL語句SQL
- CoreData執行過程的sql語句SQL
- 識別低效執行的SQL語句SQL
- 剖析SQL語句的執行過程SQL
- Oracle SQL 語句的執行過程OracleSQL
- 清除SQL語句的執行計劃SQL
- 查詢正在執行的SQL語句SQL
- 一條sql語句在mysql中是如何執行的MySql
- 【Gp】PostgreSql中如何kill掉正在執行的sql語句SQL
- sql server中如何檢視執行效率不高的語句SQLServer
- 一條 SQL 語句在 MySQL 中是如何執行的?MySql
- 查詢Oracle正在執行的sql語句及執行該語句的使用者OracleSQL
- mysql執行sql語句過程MySql
- Mybatis 動態執行SQL語句MyBatisSQL
- sql語句執行緩慢分析SQL