原生SQL查询有 query() 和 execute() 两个方法:
创新互联是专业的册亨网站建设公司,册亨接单;提供网站建设、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行册亨网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
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 没有表前缀的例子,在查询语句中,查询的表应该写实际的表名字(包括前缀)。
参考示例如下,并注意count的用法,不要乱用。是求次数?还是求和?根据需求操作。
-- cts:每一行pid出现的次数
SELECT FLOOR((CHAR_LENGTH(cart_data)-CHAR_LENGTH(REPLACE(cart_data,"pid","")))/3)'cts' from tbs;
这个官网手册讲解的很清楚的,模板渲染。例如:
$this-assign('data',$data);($data是你查询出的结果集)
在页面你就可以直接拿到data值,进行输出。
这个简单啊!首页做个前台输入姓名和会员卡信息的页面,我做个简单的页面给你看
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "html xmlns="headmeta http-equiv="Content-Type" content="text/html; charset=utf-8" /title会员查询系统/title/head bodyform id="form1" name="form1" method="post" action="test.php" p label for="name"/label input type="text" name="name" id="name" / /p p label for="vipid"/label input type="text" name="vipid" id="vipid" / /p p input type="submit" name="button" id="button" value="查询" / /p/form/body/html然后我给你一个test.php的文件代码:?php$name = trim($_POST['name']);$vipid = trim($_POST['vipid']);$con = mysql_connect("127.0.0.1","数据库用户名","数据库密码");if (!$con) { die('Could not connect: ' . mysql_error()); }$a = mysql_select_db("数据库名字", $con);$sql = "select * from kh_customer where name = '$name' and vipid = '$vipid'";$result = mysql_query($sql);while($row = mysql_fetch_array($result)) { echo $row['name'] . " " . $row['data']; echo "br /"; }mysql_close($con);?
?php
$db = mysql_connect ("数据库IP地址", "数据库用户名", "数据库密码");
//例如:$db = mysql_connect ("127.0.0.1", "root", "123456");
mysql_select_db ("要连接数据库的名字", $db);
$sql = "select * from tabel";//查询语句
$result = mysql_query ($sql);进行查询
$resultArr = mysql_fetch_array($result );得到结果返回数组
print_r($resultArr);打印结果
?
$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';//按条件查询
$condition['status'] = 1;//按条件查询
// 把查询条件传入查询方法
$data=$User-where($condition)-select();
$res=$student-field('id,name')-select(); // 这是查询数据库所有数据
print_r($data);