php如何取sql,php取地址符

本文目錄一覽:

php怎麼獲取上一條執行的sql語句

原生代碼不支持獲取上一次執行的

sql語句

,ThinkPHP用getLastSql()函數獲取的,代碼如下:

class UserModel extends Model(BaseModel){

public function test($data){

$model = M(‘user’);

$model-add($data);

$sql = $model-getLastSql();

} TP還有一種種方法就是直接用_sql,這個更方便!

1.

$model-_sql();方法實際執行的就是

2.

$model-getLastSql();用_sql注意中文

亂碼

問題,相來說還是getlastsql比較快,_有時候會因為中文編碼出錯

至於大小寫的問題根本不存在

php不區分這些大小寫的。

PHP如何取得mysql字段值並記算時間?

兩種方式 :

1、可以直接用SQL 里的函數 sum() ;

如:”select sum(字段) as num from tab “; //sum 取該字段所有列的總和

2、用PHP函數 sum($array) ; //取數組中值的總和

當然 字段必須是int型的

如何利用PHP執行.SQL文件

本篇文章是對使用PHP執行 SQL文件的實現代碼進行了詳細的分析介紹 需要的朋友參考下  

demo php:

複製代碼 代碼如下: ?php /** * 讀取 sql 文件並寫入數據庫 * @version demo php */ class DBManager {     var $dbHost = ;     var $dbUser = ;     var $dbPassword = ;     var $dbSchema = ;     function __construct($host $user $password $schema)     {         $this dbHost = $host;         $this dbUser = $user;         $this dbPassword = $password;         $this dbSchema = $schema;     }     function createFromFile($sqlPath $delimiter = (;/n)|((;/r/n))|(;/r) $prefix = $menter = array( # ))     {         //判斷文件是否存在         if(!file_exists($sqlPath))             return false;         $handle = fopen($sqlPath rb );           $sqlStr = fread($handle filesize($sqlPath));         //通過sql語法的語句分割符進行分割         $segment = explode(“;” trim($sqlStr));         //var_dump($segment);         //去掉注釋和多餘的空行         foreach($segment as $statement)         {             $sentence = explode(“/n” $statement);             $newStatement = array();             foreach($sentence as $subSentence)             {                 if( != trim($subSentence))                 {                     //判斷是會否是注釋                     $isComment = false;                     foreach($menter as $er)                     {                         if(eregi(“^(” $er “)” trim($subSentence)))                         {                             $isComment = true;                             break;                         }                     }                     //如果不是注釋 則認為是sql語句                     if(!$isComment)                         $newStatement[] = $subSentence;                                   }             }             $statement = $newStatement;         }         //對錶名加前綴         if( != $prefix)         {                    //只有表名在第一行出現時才有效 例如 CREATE TABLE talbeName             $regxTable = “^[/`/ /”]{ }[/_a zA Z]+[/_a zA Z ]*[/`/ /”]{ }$”;//處理表名的正則表達式             $regxLeftWall = “^[/`/ /”]{ }”;             $sqlFlagTree = array(                     “CREATE” = array(                             “TABLE” = array(                                     “$regxTable” =                                 )                         )                     “INSERT” = array(                             “INTO” = array(                                 “$regxTable” =                             )                         )                     );             foreach($segment as $statement)             {                 $tokens = split(” ” $statement[ ]);                 $tableName = array();                 $this findTableName($sqlFlagTree $tokens $tableName);                 if(empty($tableName[ leftWall ]))                 {                     $newTableName = $prefix $tableName[ name ];                 }                 else{                     $newTableName = $tableName[ leftWall ] $prefix substr($tableName[ name ] );                 }                 $statement[ ] = str_replace($tableName[ name ] $newTableName $statement[ ]);             }         }               //組合sql語句         foreach($segment as $statement)         {             $newStmt = ;             foreach($statement as $sentence)             {                 $newStmt = $newStmt trim($sentence) “/n”;             }             $statement = $newStmt;         }         //用於測試                //var_dump($segment);         //writeArrayToFile( data txt $segment);         //         self::saveByQuery($segment);         return true;     }     private function saveByQuery($sqlArray)     {         $conn = mysql_connect($this dbHost $this dbUser $this dbPassword);         mysql_select_db($this dbSchema);         foreach($sqlArray as $sql)         {             mysql_query($sql);         }               mysql_close($conn);     }     private function findTableName($sqlFlagTree $tokens $tokensKey= $tableName = array())     {         $regxLeftWall = “^[/`/ /”]{ }”;         if(count($tokens)=$tokensKey)             return false;               if( == trim($tokens[$tokensKey]))         {             return self::findTableName($sqlFlagTree $tokens $tokensKey+ $tableName);         }         else         {             foreach($sqlFlagTree as $flag = $v)             {                   if(eregi($flag $tokens[$tokensKey]))                 {                     if( ==$v)                     {                         $tableName[ name ] = $tokens[$tokensKey];                         if(eregi($regxLeftWall $tableName[ name ]))                         {                             $tableName[ leftWall ] = $tableName[ name ]{ };                         }                         return true;                     }                     else{                         return self::findTableName($v $tokens $tokensKey+ $tableName);                     }                 }             }         }         return false;     } } function writeArrayToFile($fileName $dataArray $delimiter=”/r/n”) {     $handle=fopen($fileName “wb”);     $text = ;     foreach($dataArray as $data)     {         $text = $text $data $delimiter;     }     fwrite($handle $text); } //測試 $dbM = new DBManager( localhost w f test ); $dbM createFromFile( data sql null fff_ ); ? lishixinzhi/Article/program/PHP/201311/21281

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/200762.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-05 20:03
下一篇 2024-12-06 11:27

相關推薦

  • cmd看地址

    本文將從多個方面詳細闡述cmd看地址,包括如何查看本機IP地址、如何查看路由器IP、如何查看DNS服務器IP等等。 一、查看本機IP地址 要查看本機IP地址,首先需要打開cmd窗口…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • 尚硅谷官網地址用法介紹

    尚硅谷是國內一家領先的技術培訓機構,提供了眾多IT職業的培訓,包括Java、Python、大數據、前端、人工智能等方向。其官網地址為http://www.atguigu.com/。…

    編程 2025-04-29
  • Hibernate日誌打印sql參數

    本文將從多個方面介紹如何在Hibernate中打印SQL參數。Hibernate作為一種ORM框架,可以通過打印SQL參數方便開發者調試和優化Hibernate應用。 一、通過配置…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用SQL實現select 聚合查詢結果前加序號

    select語句是數據庫中最基礎的命令之一,用於從一個或多個表中檢索數據。常見的聚合函數有:count、sum、avg等。有時候我們需要在查詢結果的前面加上序號,可以使用以下兩種方…

    編程 2025-04-29
  • 理解Mybatis中的SQL Limit用法

    Mybatis是一種非常流行的ORM框架,提供了SQL映射配置文件,可以使用類似於傳統SQL語言的方式編寫SQL語句。其中,SQL的Limit語法是一個非常重要的知識點,能夠實現分…

    編程 2025-04-29
  • SQL預研

    SQL預研是指在進行SQL相關操作前,通過數據分析和理解,確定操作的方法和步驟,從而避免不必要的錯誤和問題。以下從多個角度進行詳細闡述。 一、數據分析 數據分析是SQL預研的第一步…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Idea2022變更Git地址

    本文將從以下幾個方面對Idea2022變更Git地址進行詳細闡述: 一、GitHub上修改Git倉庫地址 1、登錄GitHub,找到需要修改的Git倉庫 2、在代碼頁面點擊右上角的…

    編程 2025-04-28

發表回復

登錄後才能評論