① thinkphp如何返回查询到的数据库表的列数
代码应该是这样
$id = rand(0,表中数胡拆据条数);
$data = $data['id']; // 我不明白你这里是什么意思
$arr = $m->where($data >= $id)->limit(8) ->select();
不过我总感觉上面的有问题
$id = rand(0,表中数据条数);
$arr = $m->where("id >= $id")->limit(8) ->select();
不对的话就试试这个,我个人橘做腔觉得这样是对的,不明白你那圆衫个$data['id'];是干嘛用的!
② 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
否则返回影响的记录数
③ thinkphp这句查询语句换成sql语句是多少
要看前面定义的查询条件$where具体是什么
select id,name from tablename where $where order by status
④ thinkphp中的add方法怎么获取sql错误消息
thinkphp中的add方法获取sql错误消息可以调用getDbError()函数。
getDbError函数可以获取数据库的错误信息。
function GetRandomAd()
{
global $myDB;
$today = date('j');
$ql = "SELECT * FROM reklama WHERE today<>'$today' OR realimpr<impr OR impr=0 ORDER BY RAND() LIMIT 1";
$result = $myDB->Execute($ql) or die(GetDbError($myDB->ErrorMsg()));
$r_id = $result->Fields("aid");
$r_ad_text = $result->Fields("ad_text");
$r_today = $result->Fields("today");
$result->Close();
if ($r_id)
{
if ($today != $r_today) $ql = "UPDATE reklama SET realimpr=1, today='$today' WHERE aid='$r_id'";
else $ql = "UPDATE reklama SET realimpr=realimpr+1 WHERE aid='$r_id'";
$result = $myDB->Execute($ql) or die(GetDbError($myDB->ErrorMsg()));
$result->Close();
}
return $r_ad_text;
}
⑤ ThinkPHP模型执行失败,怎么看构造的sql语句
执行失败,如果是sql语句的语法错误,你打开thinkphp的调试模式,它会提示你什么错误,并且把sql语句打印出来。
如果不是sql语句的语法错误,而是构造的sql语句不能达到你的要求,你需要查看的话,你可以使用M()->getLastSql();这个方法可以查看最后执行的一句sql语句,只要把这句放到你想要查看的构造的sql语句的后面就可以了。想要查看就用print_r把返回值打印出来就可以了
⑥ php thinkphp怎么获取sql执行结果
都是有返回值的,添加成功返回id,失败则返回false;修改成功返回true,失败则返回0,sql语句执行错误返回的是false;删除和修改一样,查询成功返回数组形式的结果集,否就返回false。
$data = D("User")->select();
$data就是接收的sql执行结果
⑦ thinkphp add()和save()执行完毕,有返回值,但是数据库并未有修改
有没有传错模型,估计是添加到其他地方去了
⑧ THINKPHP sql语句的问题
问题的所在, 原来这个跟入口文件 引入./ThinkPHP/ThinkPHP.php的位置有关系, 首先大家都应该知道加载重要核心文件都要用到
require("./ThinkPHP/ThinkPHP.php");这条代码的位置很有讲究,(我的环境是thinkphp3.1.3)
大家可以尝试下, 如果我的代码是
//3.加载核心类
require("./ThinkPHP/ThinkPHP.php");
//1.创建目录名称
define("APP_NAME","Home");
//2.创建目录路径
define("APP_PATH","./Home/");
//开启调试模式
define('APP_DEBUG',true);
复制代码
这样放置的话结果是 在与ThinkPHP源码目录在同一个级别下生成的目录文件,
情况二:
//1.创建目录名称
define("APP_NAME","Home");
//2.创建目录路径
define("APP_PATH","./Home/");
//3.加载核心类
require("./ThinkPHP/ThinkPHP.php");
//开启调试模式
define('APP_DEBUG',true);
复制代码
情况二的方法,会生成一个站点Home目录结构都是好的,但问题是在调试模式下无法显示sql生成语句。这是因为 当引入核心类库文件 后就已经执行默认的设置了,所以 define('APP_DEBUG',true); 加载有问题。
想要解决以上两个问题就必须要require('./ThinkPHP/ThinkPHP.php');这条代码写在最后一行。那么你们所说的sql无法显示就神奇的出现了。
⑨ thinkphp 执行了哪些sql
fetchSql
fetchSql用于直接返举银明隐回SQL而不是执行查正槐宴询,适用于任何的CURD操作方法。
⑩ 怎样在thinkphp里面执行原生的sql语句
原生SQL查询有 query() 和 execute() 两个方法:
query():用于 SQL 查询操作,并返回符合查询条件的数据集
execute():更新和写入数据的 SQL 操作,返回影响的记录数
publicfunctionread(){
//实例化一个空模型,没有对应任何数据表
$Dao=M();
//或者使用$Dao=newModel();
$list=$Dao->query("select*fromuserwhereuid<5");
if($list){
$this->assign('list',$list);
$this->display();
}else{
$this->error($Dao->getError());
}
}
publicfunctionread(){
header("Content-Type:text/html;charset=utf-8");
//实例化一个空模型,没有对应任何数据表
$Dao=M();
//或者使用$Dao=newModel();
$num=$Dao->execute("updateusersetemail='[email protected]'whereuid=3");
if($num){
echo'更新',$num,'条记录。';
}else{
echo'无记录更新';
}
}