php拼接sql語句
function getSql($table,$wheres="",$feilds="*"){
$base_sql = "select {$feilds} from ".$table." where 1=1";
if(!empty($wheres)){
$base_sql = $base_sql." ".$wheres;
}
return $base_sql;
}
$sql = getSql("table1"," and id=1 ","id,name,cid"); //調用的時候,傳遞表名,條件(全部用and 鏈接),欄位列表 就好了。。如果乎歷滲還需要limit ,歲脊order by什麼的。爛世你可以繼續追問,我幫你完善。
B. php可以和sql結合嗎
你說的 sql 估計是 Microsoft SQL Server
可以參考下面的文字
SQL Server 資料庫函數庫
------------------------------------------------------
本函數庫共有 16 個函數
SQL Server 是 Microsoft 從 SyBASE 取得並修改的資料庫系統,它只能在 Windows NT Server 上面執行。使用本函數只能使用 Windows NT Server 作為 PHP 的執行平台。
Microsoft SQL Server 的 query 語法為 Transact-SQL,和 SyBASE 的語法幾乎相同。本資料庫可能是所有 PHP 所支持資料庫中,中文書籍最多的資料庫了。
mssql_affected_rows: 取得最後 query 影響的記錄數。
mssql_close: 關閉與資料庫的連接。
mssql_connect: 連上資料庫。
mssql_data_seek: 移動列指標。
mssql_fetch_array: 返回數組數據。
mssql_fetch_field: 取得欄位信息。
mssql_fetch_object: 返回對象數據。
mssql_fetch_row: 返回單列的各欄位。
mssql_field_seek: 設定指標到返回值的某欄位。
mssql_free_result: 釋放返回佔用內存。
mssql_num_fields: 取得返回欄位的數目。
mssql_num_rows: 取得返回列的數目。
mssql_pconnect: 打開 MS SQL 伺服器長期連接。
mssql_query: 送出一個 query 字元串。
mssql_result: 取得查詢 (query) 的結果。
mssql_select_db: 選擇一個資料庫。
詳細資料:
-----------------------------------------------------
mssql_affected_rows
取得最後 query 影響的記錄數。
語法: int mssql_affected_rows(int [link_identifier]);
返回值: 整數
函數類型: 資料庫功能
內容說明
本函數用來取得最後一次對資料庫下 query 指令所影響的記錄數,會影響的為 INSERT、UPDATE 或 DELETE 等指令,而 SELECT 不會影響。參數 link_identifier 可省略,為打開資料庫的連接代號。返回值即為記錄數。
-----------------------------------------------------
mssql_close
關閉與資料庫的連接。
語法: boolean mssql_close(int [link_identifier]);
返回值: 布爾值
函數類型: 資料庫功能
內容說明
本函數用來關閉與 MS SQL Server 資料庫的連接,能關閉的為使用 mssql_connect() 函數打開的資料庫,若使用 mssql_pconnect() 打開的資料庫則不能以本函數關閉。參數 link_identifier 可省略,為打開資料庫的連接代號。關閉成功則返回 true 值。
參考
mssql_connect() mssql_pconnect()
-----------------------------------------------------
mssql_connect
連上資料庫。
語法: int mssql_connect(string [servername], string [username], string [password]);
返回值: 整數
函數類型: 資料庫功能
內容說明
本函數用來打開與 MS SQL Server 資料庫的連接。參數 servername 為欲連上的資料庫伺服器名稱。參數 username 及 password 可省略,分別為連接使用的帳號及密碼。使用本函數需注意早點關閉資料庫,以減少系統的負擔。連接成功則返回資料庫的連接代號,失敗返回 false 值。
參考
mssql_close() mssql_pconnect()
-----------------------------------------------------
mssql_data_seek
移動列指標。
語法: boolean mssql_data_seek(int result_identifier, int row_number);
返回值: 布爾值
函數類型: 資料庫功能
內容說明
本函數用來移動 MS SQL Server 數據文件中的列指標到指定的列上,可供 mssql_fetch_row() 等函數使用。參數 result_identifier 為查詢的代號值。參數 row_number 則為欲移往的記錄數。若失敗則返回 false 值。
參考
mssql_close() mssql_pconnect()
-----------------------------------------------------
mssql_fetch_array
返回數組數據。
語法: array mssql_fetch_array(int result);
返回值: 數組
函數類型: 資料庫功能
內容說明
本函數用來將查詢結果 result 拆到數組變數中。若 result 沒有數據,則返回 false 值。而本函數可以說是 mssql_fetch_row() 的加強函數,除可以將返回列及數字索引放入數組之外,還可以將文字索引放入數組中。
-----------------------------------------------------
mssql_fetch_field
取得欄位信息。
語法: object mssql_fetch_field(int result, int field_offset);
返回值: 對象
函數類型: 資料庫功能
內容說明
本函數返回的對象數據為 result 的欄位 (Column) 信息。返回對象的屬性如下:
name - 欄位名稱
column_source -欄位所在表格的數據文件名稱
max_length - 欄位的最大長度
numeric - 若為 1 表示本欄位為數字定義 (numeric)
參考
mssql_field_seek()
-----------------------------------------------------
mssql_fetch_object
返回對象數據。
語法: object mssql_fetch_object(int result);
返回值: 對象
函數類型: 資料庫功能
內容說明
本函數用來將查詢結果 result 拆到對象變數中。使用方法和 mssql_fetch_array() 幾乎相同,不同的地方在於本函數返回值是對象而不是數組。若 result 沒有數據,則返回 false 值。另外值得注意的地方是,取回的對象數據的索引只能是文字而不能用數字,這是因為對象的特性。對象數據的特性中所有的屬性 (property) 名稱都不能是數字,因此只好乖乖使用文字字元串當索引了。關於速度方面,本函數的處理速度幾乎和 mssql_fetch_array() 及 mssql_fetch_row() 二函數差不多,要用哪個函數還是看使用的需求決定。
參考
mssql_fetch_array() mssql_fetch_row()
-----------------------------------------------------
mssql_fetch_row
返回單列的各欄位。
語法: array mssql_fetch_row(int result);
返回值: 數組
函數類型: 資料庫功能
內容說明
本函數用來將查詢結果 result 之單列拆到數組變數中。數組的索引是數字索引,第一個的索引值是 0。若 result 沒有數據,則返回 false 值。
參考
mssql_fetch_array() mssql_fetch_object() mssql_data_seek() mssql_result()
-----------------------------------------------------
mssql_field_seek
設定指標到返回值的某欄位。
語法: int mssql_field_seek(int result, int field_offset);
返回值: 整數
函數類型: 資料庫功能
內容說明
本函數設定目前的指標到返回值的特定欄位中。參數 result 為返回值代碼。參數 field_offset 則為指定的欄位序數。
使用範例
mssql_fetch_field
-----------------------------------------------------
mssql_free_result
釋放返回佔用內存。
語法: int mssql_free_result(int result);
返回值: 整數
函數類型: 資料庫功能
內容說明
本函數可以釋放目前 MS SQL Server 資料庫 query 返回所佔用的內存。一般只有在非常擔心在內存的使用上可能會不足的情形下才會用本函數。PHP 程序會在結束時自動釋放。
-----------------------------------------------------
mssql_num_fields
取得返回欄位的數目。
語法: int mssql_num_fields(int result);
返回值: 整數
函數類型: 資料庫功能
內容說明
本函數可以得到返回欄位的數目。參數 result 為返回值代碼。
參考
mssql_query() mssql_fetch_field() mssql_num_rows()
-----------------------------------------------------
mssql_num_rows
取得返回列的數目。
語法: int mssql_num_rows(int result);
返回值: 整數
函數類型: 資料庫功能
內容說明
本函數可以得到返回列的數目。參數 result 為返回值代碼。
參考
mssql_query() mssql_fetch_field() mssql_num_fields()
-----------------------------------------------------
mssql_pconnect
打開 MS SQL 伺服器長期連接。
語法: int mssql_pconnect(string [servername], string [username], string [password]);
返回值: 整數
函數類型: 資料庫功能
內容說明
本函數和 mssql_connect() 雷同。不同的地方在於使用本函數打開資料庫時,程序會先尋找是否曾經執行過本函數,若執行過則返回先前執行的 ID。另一個不同的地方是本函數無法使用 mssql_close() 關閉資料庫。參數 servername 為欲連上的資料庫伺服器名稱。參數 username 及 password 可省略,分別為連接使用的帳號及密碼。
-----------------------------------------------------
mssql_query
送出一個 query 字元串。
語法: boolean mssql_query(string query, int plink_identifier]);
返回值: 布爾值
函數類型: 資料庫功能
內容說明
本函數送出 query 字元串供 MS SQL Server 做相關的處理或者執行。若沒有指定 link_identifier 參數,則程序會自動尋找最近打開的 ID。成功則返回 true 值。
-----------------------------------------------------
mssql_result
取得查詢 (query) 的結果。
語法: int mssql_result(int result, int row, mixed field);
返回值: 整數
函數類型: 資料庫功能
內容說明
本函數取得一格 query 的結果。參數 field 可以是欄位名稱、順序或者是 fieldname.tablename 的格式。在返回值量少時,可以使用本函數來處理。當資料庫大時,本函數的效率就有待考慮了,這時可以使用較有效率的 mssql_fetch_row()、mssql_fetch_array() 或 mssql_fetch_object() 等函數。
-----------------------------------------------------
mssql_select_db
選擇一個資料庫。
語法: boolean mssql_select_db(string database_name, int [link_identifier]);
返回值: 布爾值
函數類型: 資料庫功能
內容說明
本函數選擇 MS SQL Server 中的資料庫以供之後的數據查詢作業 (query) 處理。成功返回 true,失敗則返回 false。
-----------------------------------------------------
C. 怎樣用PHP連接sql資料庫
1、學習的方法,最好是看手冊
在前一篇文章中涉及到了連接資料庫sqlsrv_connect();還記得我們mysql連接資料庫的時候也是mysql_connect();兩者操作資料庫是很相似的。從零基礎開始學起的話,只能是查閱手冊。查看一下sqlsrv有哪些函數提供我們使用!推薦網址是:
【注意】很多的方法都跟mysql提供的方法很相似,看到後面的函數名就大概知道裡面的用法,比如說mysql執行sql語句的時候調用mysql_query();而sqlserver執行sql語句的時候調用也是sqlsrv_query(),但是特別注意一點就是,它們的傳遞參數不一樣。詳細的只能看一下手冊。接下來我簡單總結一下操作數據的方法
2、連接資料庫sqlsrv_connect()
<?php$serverName = "serverNamesqlexpress";//伺服器的名字,本地localhost$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");$conn = sqlsrv_connect( $serverName, $connectionInfo);if( $conn ) { echo "Connection established.<br />";
}else{ echo "Connection could not be established.<br />"; die( print_r( sqlsrv_errors(), true));
}
3、操作資料庫
1)執行sql語句sqlsrv_query(),返回值為true或者false,這里函數的用法跟mysql_query(),不一樣。它需要把連接的資源句柄當作參數傳進去,看源碼。資源句柄就是上面代碼連接資料庫的「$conn」。
$sql = "select * from test1"; //sql語句$data = sqlsrv_query($conn,$sql); //$conn資源句柄if($data == true){ die("執行成功");
}else{ die("執行失敗");
}
2)獲取結果集
//以數值索引數組、關聯數組或這兩種數組的形式檢索下一行的數據。類似於mysql_fetch_arraysqlsrv_fetch_array
//以對象形式檢索下一行的數據。sqlsrv_fetch_object 1234
$sql = "select * from test1";$data = sqlsrv_query($conn,$sql);if($data == true){ while($row = sqlsrv_fetch_array( $data, SQLSRV_FETCH_ASSOC) ) { echo $row['id'].", ".$row['name']."<br />";
}else{ die( print_r( sqlsrv_errors(), true));
}
}
$sql = "SELECT fName, lName FROM Table_1";$stmt = sqlsrv_query( $conn, $sql);if( $stmt === false ) { die( print_r( sqlsrv_errors(), true));
}while( $obj = sqlsrv_fetch_object( $stmt)) { echo $obj->fName.", ".$obj->lName."<br />";
}
3)顯示錯誤信息sqlsrv_errors():上面都有用到這個函數,只要是操作資料庫發生錯誤,都可以使用這個函數列印出來看一下壓
這里就不用上代碼了
D. php 如何把兩段資料庫內容拼接
程序開始建立兩個資料庫連接,函數mysql_query()原型:
resourcemysql_query(string$query[,resource$link_identifier] )
方法1:在mysql_query函數中指定所用連接,即:
E. php 拼接sql語句 如何拼接 left join
SQL LEFT JOIN 關鍵字
LEFT JOIN 關鍵字會從左表 (table_name1) 那裡返回所有的行,即使在右表 (table_name2) 中沒有匹配的行。
LEFT JOIN 關鍵字語法
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注釋:在某些資料庫中, LEFT JOIN 稱為 LEFT OUTER JOIN。
F. php sql語句拼接怎麼加最後一個分頁條件order by id desc LIMIT $pageNum,$numPerPage
$pageVar = 0; // get['page'] 的灶睜灶參隱扮數
$numPerPage = 10; // 每頁查早敬詢的條數
$pageNum = $pageVar * $numPerPage ; // 當前頁開始的條數
$sql.=" LIMIT $pageNum,$numPerPage";
G. php sql語句與變數到底怎麼拼接
要考慮到字元串本身是要用引號括住的,所以要這樣:
$sql = "insert into users (slug,email,`password`,nickname) values ('".$slug."','".$email."','".$password."','".$nickname."')";
或者
$sql = "insert into users (slug,email,`password`,nickname) values ('$slug','$email','$password','$nickname')";