query():用于 SQL 查询 *** 作,并返回符合查询条件的数据集
execute():更新和写入数据的 SQL *** 作,返回影响的记录数
query()
query() 方法是用于 SQL 查询 *** 作,和select()方法一样返回符合查询条件的数据集。
例子:
public function read(){
// 实例化一个空模型,没有对应任何数据表
$Dao = M()
//或者使用 $Dao = new Model()
$list = $Dao->query("select * from user where uid<5")
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/htmlcharset=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 没有表前缀的例子,在查询语句中,查询的表应该写实际的表名字(包括前缀)。
mysqli有两种数据库连接方式:
1、面向过程式连接:
mysqli_connect('localhost','xxx','xxx','xxx')mysqli_query('')
后使用mysqli_fetch_assoc方法获取到数据。
2、面向对象式连接:
$mysqli = new mysqli("localhost", "my_user", "my_password", "world")$result = $mysqli->query('')
后使用$result->fetch_assoc()获取数据。
至于num_rows是获取查询到的行数的方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)