Discuz教程网

[已解决]数据库对象查询的疑问

 关闭 [复制链接]
authicon angryart 发表于 2013-8-20 13:52:27 | 显示全部楼层 |阅读模式
首先我登录mysql,输入命令如下
mysql> SELECT tid,subject FROM pre_forum_thread WHERE author='hikego'  order by dateline desc limit  10;
+-----+----------+
| tid | subject  |
+-----+----------+
| 395 | ???????? |
|   2 | ?????    |
|   1 | ??       |

查询输出一共只有三个记录,我运行test2.php,代码如下
<?php
require './source/class/class_core.php';
C::app()->init();
$query = DB::query("SELECT tid,subject FROM ".DB::table('forum_thread')." WHERE author='hikego'  order by dateline desc limit 10");
while($thread = DB::fetch($query)) {
        echo '<a href="forum.php?mod=viewthread&tid='.$thread[tid].'" target="_blank">'.$thread[subject].'</a><br>';
}
?>
test2.php的输出有七、八条,为什么两边不对称,我看了良久,我觉得语句没有问题啊!
最佳答案
avatar
2013-8-20 16:21:29
我也没看出问题,看看多出来的数据怎么样的



上一篇:Discuz X2.5好用的数据恢复软件
下一篇:【爱相随xp主题&amp;乡巴佬】
authicon dly 发表于 2013-8-20 16:21:29 | 显示全部楼层    本楼为最佳答案   
我也没看出问题,看看多出来的数据怎么样的
authicon  楼主| angryart 发表于 2013-8-20 16:49:19 | 显示全部楼层
dly 发表于 2013-8-20 16:21
我也没看出问题,看看多出来的数据怎么样的

会不会是持久化对象的问题,如何把缓存更新,我试过SELECT count(*) FROM pre_forum_thread;  两边的数据不一样,一个是一千多条,一个是八百多条,我确定它们都是在同一数据库上的。
authicon  楼主| angryart 发表于 2013-8-20 16:55:03 | 显示全部楼层
只有一个可能吧,pre_forum_thread 不对应  forum_thread,除此我还有其它的表示方法吗?我在PHP怎么查看pre_forum_thread表的数据?
authicon dly 发表于 2013-8-20 16:55:09 | 显示全部楼层
angryart 发表于 2013-8-20 16:49
会不会是持久化对象的问题,如何把缓存更新,我试过SELECT count(*) FROM pre_forum_thread;  两边的数据 ...

是不是你一个数据库里安装了两个论坛,他们的表前缀不同
authicon  楼主| angryart 发表于 2013-8-20 17:19:22 | 显示全部楼层
dly 发表于 2013-8-20 16:55
是不是你一个数据库里安装了两个论坛,他们的表前缀不同

我把数据库所有的表都试过了,没有一个表的数据记录总数与 php的对象集总数能够对应下的,这是不是意思味着对象并不是对应着数据库里面的一个表,你也可以做这样的实验。
authicon dly 发表于 2013-8-20 17:22:31 | 显示全部楼层
angryart 发表于 2013-8-20 17:19
我把数据库所有的表都试过了,没有一个表的数据记录总数与 php的对象集总数能够对应下的,这是不是意思味 ...


一个DZ就几百个表,你会对所有的进行测试?

看看你当前的数据库里是不是装了多个Discuz吧,pre_只是默认的表前缀,在同一个数据库装第二个论坛的时候就要设置新的,加入A论坛是pre_,B论坛是abc_没那么在A论坛查询DB::table('forum_thread')和直接查询pre_forum_thread本身就不是查的一个表,一个查询的事abc_forum_thread,一个是pre_forum_thread
authicon  楼主| angryart 发表于 2013-8-20 17:33:13 | 显示全部楼层
dly 发表于 2013-8-20 17:22
一个DZ就几百个表,你会对所有的进行测试?

看看你当前的数据库里是不是装了多个Discuz吧,pre_只是 ...

我确定我没有装两个DZ,我看了开发文档,DB::table('forum_thread')不是对其中一个表做初始化永久持续吗?我对当前数据库所有以forum_thread为结尾的做了测试,都没有对应上的。
authicon  楼主| angryart 发表于 2013-8-21 16:46:24 | 显示全部楼层
angryart 发表于 2013-8-20 17:33
我确定我没有装两个DZ,我看了开发文档,DB::table('forum_thread')不是对其中一个表做初始化永久持续吗? ...

兄弟,看这个网站  http://www.lt2013.net/portal.php,里面的精彩作业贴的数据库对象是什么语句构造出来的?   我的目的就是想构造这样一条SQL
authicon  楼主| angryart 发表于 2013-8-21 16:47:54 | 显示全部楼层
angryart 发表于 2013-8-21 16:46
兄弟,看这个网站  http://www.lt2013.net/portal.php,里面的精彩作业贴的数据库对象是什么语句构造出来 ...


兄弟,看这个网站  http://www.lt2013.net/portal.php,里面的精彩作业贴的数据库对象是什么语句构造出来的?   我的目的就是想构造这样一条SQL语句,我如何反向工程在源代码里查找?或者你熟悉DISCUZ词典,给我一个方向让我知道怎么查找出来?

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2024-5-5 21:56

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表