原生SQL查询有 query() 和 execute() 两个方法:
十载的瑞丽网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整瑞丽建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“瑞丽网站设计”,“瑞丽网站推广”以来,每个客户项目都认真落实执行。
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 没有表前缀的例子,在查询语句中,查询的表应该写实际的表名字(包括前缀)。
1、用navicat新建一个数据库database1。
2、在database1数据库中新建一个表table2。
3、在table2中添加新的数据,新建一个名称为mysql_query的数据库。
4、在页面中用mysql_connect 函数与数据库建立连接。
5、用mysql_select_db函数选择要查询的数据库。
6、添加一个查询 table2表的查询语句“$sql=select * from table2“。
7、将查询语句$sql添加到查询数据库函数mysql_query中,返回值赋值给变量query。
8、最后将mysql_query。php文件在浏览器中打开,查看查询到数据库中的内容的结果。
查看一下代码:
?php
// 获取表单提交值
$student_id = intval(trim($_POST['student_id']));
// 页面表单 可以放单独的html文件中,如果放单独的html页面中 form 的action的地址要改成下面的PHP文件名
echo 'form action="" method="post"
input type="text" name="student_id" value="{$student_id}"/
input type="submit" name="submit" value="查询"/
/form';
// 当有数据提交时
if ($student_id)
{
$con= mysql_connect("localhost","root","111") or die("连接错误");
mysql_select_db("examination",$con);
// 查询
$sql = "SELECT * FROM tablename WHERE student_id = $student_id ";
$res=mysql_query($sql);
$row=mysql_fetch_array($res);
// 输出
echo '学号:'.$row['student_id'].'br姓名:'.$row['name'].'br性别:'.$row['gender'].'br分数:'.$row['score'];
}
?