免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2990 | 回复: 7

采用PHPLIB的mysql操作类,但是却无法执行嵌套SQL查询语句 [复制链接]

论坛徽章:
0
发表于 2005-01-01 22:36 |显示全部楼层
代码如下:

//数据库操作类
include "../include/db_mysql.inc.php";

$db=new DB_sql;
$db->;connect();
$db->;query("select MalfunctionID,StartTime,MalfunctionType,UserID,MalfunctionContent,IsSolve from

malfunctionrecord order by MalfunctionID desc";

while($db->;next_record()) {
        $UserID=$db->;Record[UserID];

        $db->;query("select UserID,CommunityID,UserAddress from personuserinfo where UserID='$UserID'";
        $db->;next_record();
        $UserAddress=$db->;Record[UserAddress];
        echo $UserAddress;
        $db->;free();

}
$db->;free();

执行上述代码报错:
Database error: next_record called with no query pending.
MySQL Error: 0 ()
Session halted.
真是急人呀,请问大家如何才能实现执行嵌套SQL查询语句呢?

论坛徽章:
0
发表于 2005-01-02 03:02 |显示全部楼层

采用PHPLIB的mysql操作类,但是却无法执行嵌套SQL查询语句

mysql支持嵌套SQL查询语句吗?

论坛徽章:
0
发表于 2005-01-02 03:15 |显示全部楼层

采用PHPLIB的mysql操作类,但是却无法执行嵌套SQL查询语句

我用过phplib,也是像楼上那样用的,没有问题,

出错可能是sql语句有问题,你再查一查,看看是不是某个字段名写错了

论坛徽章:
0
发表于 2005-01-02 12:33 |显示全部楼层

采用PHPLIB的mysql操作类,但是却无法执行嵌套SQL查询语句

KAO, 这么明显的错误..............

//数据库操作类
include "../include/db_mysql.inc.php";

$db=new DB_sql;
$db->;connect();

$db1=new DB_sql;
$db1->;connect();


$db->;query("select MalfunctionID,StartTime,MalfunctionType,UserID,MalfunctionContent,IsSolve from

malfunctionrecord order by MalfunctionID desc";

while($db->;next_record()) {
$UserID=$db->;Record[UserID];

$db1->;query("select UserID,CommunityID,UserAddress from personuserinfo where UserID='$UserID'";
$db1->;next_record();
$UserAddress=$db1->;Record[UserAddress];
echo $UserAddress;

}

$db1->;free();
$db->;free();

论坛徽章:
0
发表于 2005-01-02 16:58 |显示全部楼层

采用PHPLIB的mysql操作类,但是却无法执行嵌套SQL查询语句

有两处严重错误:
1。出错的地方是不该在循环内用$db->;free();,因为用这条语句后将使$db->;next_record(); 报错,

2。即使循环内不用$db->;free();,程序不会报错,但所得结果也不会正确,因为第一次查询的结果result被第二次覆盖,语句$UserID=$db->;Record[UserID]; 将会取personuserinfo表的下一条记录,而不是第一次查询结果的第二条记录。

每次查询用一个result,用完记得free()。

论坛徽章:
0
发表于 2005-01-03 15:03 |显示全部楼层

采用PHPLIB的mysql操作类,但是却无法执行嵌套SQL查询语句

楼上的, 那我改的那段代码,是不是 $db1->;free();  得放在循环体内部?

论坛徽章:
0
发表于 2005-01-03 16:03 |显示全部楼层

采用PHPLIB的mysql操作类,但是却无法执行嵌套SQL查询语句

题外话:php操作数据库到底需不需要free??是可有可无的吗?

论坛徽章:
0
发表于 2005-01-03 17:55 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP