重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
php中有datatable,用法如下:
成都创新互联于2013年成立,是专业互联网技术服务公司,拥有项目网站建设、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元邱县做网站,已为上家服务,为邱县各地企业和个人服务,联系电话:13518219792
datatable使用技巧
(1)create a datatable
datatable dt = new datatable("table_ax");
(2)add columns for datatable
//method 1
dt.columns.add("column0", system.type.gettype("system.string"));
//method 2
datacolumn dc = new datacolumn("column1", system.type.gettype("system.boolean"));
dt.columns.add(dc);
(3)add rows for datatable
//initialize the row
datarow dr = dt.newrow();
dr["column0"] = "ax";
dr["column1"] = true;
dt.rows.add(dr);
原生SQL查询有 query() 和 execute() 两个方法:
query():用于 SQL 查询操作,并返回符合查询条件的数据集
execute():更新和写入数据的 SQL 操作,返回影响的记录数
query()
query() 方法是用于 SQL 查询操作,和select()方法一样返回符合查询条件的数据集。
例子:
public function read(){
// 实例化一个空模型,没有对应任何数据表
$Dao = M();
//或者使用 $Dao = new Model();
$list = $Dao-query("select * from user where uid5");
if($list){
$this-assign('list', $list );
$this-display();
} else {
$this-error($Dao-getError());
}
}
对于 query() 方法返回的数据集,跟 select() 一样,可以在模板里直接循环输出。
execute()
execute() 方法用于更新和写入数据的 SQL 操作(注:非查询操作,无返回数据集),返回影响的记录数。
例子:
public function read(){
header("Content-Type:text/html; charset=utf-8");
// 实例化一个空模型,没有对应任何数据表
$Dao = M();
//或者使用 $Dao = new Model();
$num = $Dao-execute("update user set email = '12345@xxx.com' where uid=3");
if($num){
echo '更新 ',$num,' 条记录。';
}else{
echo '无记录更新';
}
}
如果查询比较复杂或一些特殊的数据操作不能通过 ThinkPHP 内置的 ORM 和 ActiveRecord 模式实现时,就可以通过直接使用原生 SQL 查询来实现。
注意:以上都是 user 没有表前缀的例子,在查询语句中,查询的表应该写实际的表名字(包括前缀)。
thinkphp的select和find的区别总结如下:
select方法返回的一个数据集,而find方法返回的是一行。
举例说明:
1、find的使用结果演示:
$tech=M('techlevel','HR_CS_','DB_CONFIG2');
$Data=$tech-where('id=1')-find();
dump($Data);
结果:
array(6) { 这里是一维数组
["ID"] = int(1)
["TechLevel"] = string(2) "10"
["Remark"] = string(4) "??"
["CreateDate"] = string(19) "2013-03-14 15:14:38"
["CreateBy"] = string(5) "admin"
["ROW_NUMBER"] = string(1) "1"
}
2、select使用结果演示
$Data=$tech-where('id=1')-select();
dump($Data);
结果:
array(1) { 这里是二维数组
[0] = array(6) {
["ID"] = int(1)
["TechLevel"] = string(2) "10"
["Remark"] = string(4) "??"
["CreateDate"] = string(19) "2013-03-14 15:14:38"
["CreateBy"] = string(5) "admin"
["ROW_NUMBER"] = string(1) "1"
}
}
$result = mysql_query($_sql, $this-m_database) ;
// 获得查询的结果存入Array
$queryResult = array ();
while ( $row = mysql_fetch_assoc ( $result ) ) {
$queryResult [] = $row ;
}
// 释放
mysql_free_result ( $result );
// 查询的结果返回Array
return $queryResult;
require_once("./lib/adodb/adodb.inc.php");
$db = NewADOConnection('mysql');
//$db-debug = true;
$db-Connect($DB,$USR,$PWD,$DBNAME) or die("数据库连接失败,如果您还没有安装本程序,请先安装!");
$db-Query("Set Names 'utf8'");
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
这样就把 数据库链接上了
一、如何得到ADODB? 它的运行环境是什么?
从上下载。
1.进行初始化:传统方式
$conn = new ADONewConnection($dbDriver);
$conn-Connect($host, $user, $passwd, $db);
基本的函数:
关于ADOConnection类的相关方法有:
1.Connect:数据库连接方法,上边我们介绍过的。对于mysql还有PConnect,与PHP语言中的用法一样
2.Execute($sql):执行查询语句结果返回一个ADORecordSet类。
3.GetOne($sql):返回第一行的第一个字段
4.GetAll($sql):返回所有的数据。这个函数可是大有用处,记得不记的我在以前的教程中写关于新闻列表的输入时要将需要在页面显示的
$strQuery = "select iNews, vcNewsTitle from tb_news_ch";
$array = $conn-GetAll($strQuery);//注意这条语句
$smarty-assign("News_CH", $array);
unset($array);
4.SelectLimit($sql, $numrows=-1, $offset=-1, $inputarrr=false): 返回一个数据集,大家从语句上也不难看出它是一条限量查询语句,与mysql语句中的limit 有异曲同工之效,来一个简单的例子:
$rs = $conn-SelectLimit("select iNewsID, vcNewsTitle from tb_news_CH", 5, 1);
看明白了吗?$rs中保存的是数据库中从第一记录开始的5条记录。我们知道,在oracle数据库不支持在SQL语句中使用limit,但是我们如果使用ADODB的话,那这个问题就容易解决多了!
5.Close():关闭数据库,虽然说PHP在页面结束时会自动关闭,但为了程序的完整大家还是要在页面结束进行数据库的关闭。
关于ADORecordSet.ADORecordSet为$conn-Execute($sql)返回的结果,它的基本函数如下:
1. Fields($colname):返回字段的值.
2. RecordCount():所包含的记录数.这个记录确定数据集的记录总数.
3. GetMenu($name, [$default_str=''], [$blank1stItem=true], [$multiple_select=false], [$size=0], [$moreAttr=''])非常好的一个函数,使用它可以返回一个name=$name的下拉菜单(或多选框)!!!当然,它是一个HTML的字符串,这是一个令人激动的好东西,$name指的是option的name属性,$default_str是默认选中的字串,$blank1stItem指出第一项是否为空,$multiple_select指出是否为多选框,而我们得到这个字串后就可以使用$smarty-("TemplateVar", "GetMenuStr")来在模板的"TemplateVar" 处输入一个下拉列表(或是多先框)
7.GetArray($num):返回数据集中的$num行数据,将其组合成二维数组.这个方法我们在例子index.php要用到.
8. Close():同mysql_free_result($rs);清除内容占用.
哪里不会可以问我