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文件在浏览器中打开,查看查询到数据库中的内容的结果。
原生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 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 没有表前缀的例子,在查询语句中,查询的表应该写实际的表名字(包括前缀)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)