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')";