很多站长朋友们都不太清楚原生查询语句php,今天小编就来给大家整理原生查询语句php,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 原生php如何输出mysql最后执行的sql 2、 thinkphp3.2.3 执行原生sql语句(SET SQL_QUOTE_SHOW_CREATE = 1)时报错,是怎么回事? 3、 php框架中的方法与原生sql语句的区别,面试的时候被问到这个问题。 4、 怎样试用PHP原生语句查询数据库 5、 thinkphp5原生查询时,查询结果怎么分页,具体代码应该怎么写? 6、 如何在ThinkPHP里面使用原生的SQL查询操作 原生php如何输出mysql最后执行的sql方法一:
$link = mysql_connect("192.168.1.1", "myuser", "mypass");--连接数据库
if(FALSE == $link)
{
echo "Connect database failed!";
}
$query =
"select * from a order by id";
mysql_select_db('test', $link);--选择数据库
$result = mysql_query($query);--执行查询语句
if(FALSE == $result)
{
echo "Querry failed!";
}
$i = 0;
$j = 0;
while($i++ < mysql_num_rows($result))--取总行数
{
$meta_c=0;
if($meta_c=mysql_fetch_row($result))--取每一行的结果集
{
while($j < mysql_num_fields($result))--取一行的列数
{
echo $meta_c[$j;
}
echo "
";
} // while;
$j=0;
}
mysql_free_result($result);--释放结果集
mysql_close($link);--关闭连接
?>
方法二:
$link = mysql_connect("192.168.1.1", "myuser", "mypass");--连接数据库
if(FALSE == $link)
{
echo "Connect database failed!
";
}
mysql_select_db('test', $link);--选择数据库
$result = mysql_query("select * from a order by id");--执行查询语句
if(FALSE == $result)
{
echo "Querry failed!";
}
while($row = mysql_fetch_array($result, MYSQL_NUM))--取数组里面的值,因为结果集以二维数组存放
{
foreach ($row as $col_value)--一一取值
{
echo " $col_value ";
}
}
mysql_free_result($result);--释放结果集
mysql_close($link);)--关闭连接
?>
thinkphp3.2.3 执行原生sql语句(SET SQL_QUOTE_SHOW_CREATE = 1)时报错,是怎么回事?query 执行SQL查询操作
$Model = M()
$Model->query("select * from think_user where status=1");
如果数据非法或者查询错误则返回false
否则返回查询结果数据集(同select方法)
你用插入语句 返回的不是数组 所以就报错了吧
execute用于更新和写入数据的sql操作
$Model = M()
$Model->execute("update think_user set name='thinkPHP' where status=1");
如果数据非法或者查询错误则返回false
否则返回影响的记录数
php框架中的方法与原生sql语句的区别,面试的时候被问到这个问题。php框架中的方法最终也是要被框架解析成sql语句来执行的,如果使用原生的sql效率会高一些,但是失去了一些灵活性和安全性(比如框架在解析的时候可能会对数据做安全性检查,唯一性检查等等,这就是使用框架的好处)
怎样试用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/html; charset=utf-8");
// 实例化一个空模型,没有对应任何数据表
$Dao = M();
//或者使用 $Dao = new Model();
$num = $Dao->execute("update user set email = '12345@xxx测试数据' where uid=3");
if($num){
echo '更新 ',$num,' 条记录。';
}else{
echo '无记录更新';
}
}
如果查询比较复杂或一些特殊的数据操作不能通过 ThinkPHP 内置的 ORM 和 ActiveRecord 模式实现时,就可以通过直接使用原生 SQL 查询来实现。
注意:以上都是 user 没有表前缀的例子,在查询语句中,查询的表应该写实际的表名字(包括前缀)。
thinkphp5原生查询时,查询结果怎么分页,具体代码应该怎么写?造成这个错误的原因是 Db::query($sql)返回的是数组,解决方法:
$list = Db::table('products')->field('id,name,price')->paginate(5);
视图:
遍历$list元素
分页{$list->render()}
如何在ThinkPHP里面使用原生的SQL查询操作你可以new一个空的Model对象,然后使用query($sql)方法去使用原生的sql。
例如,
$model?=?new?Model();
//或者
$model?=?M();
$Model->query('SELECT?*?FROM?thinkphp?WHERE?status?=?1');
关于原生查询语句php的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于原生查询语句php php原生代码难吗的详细内容...