读取数据库写在function里却不行

哎算了 2017-03-24 12:40:17

总共2个页面,分别是conn.php和ss.php,目前ss.php代码报错。

conn.php
$conn = new COM ( "ADODB.Connection", NULL, 65001) or die ( "ADO connect failed!" );

$connstr = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" . realpath ( "db/1.mdb" ) . ";Uid=;Pwd=;";



ss.php代码,这里报错了。
require('conn.php');
function read_menu($resid){
$conn->open ( $connstr );
$sql1 = "select * from s_menu where yc=1 and class_parentid=$resid order by class_order desc";
$rsArr1 = $conn->execute ( $sql1 );
echo "<div class=st2>".$rsArr1["class_title"]." </div>";

}

$conn->open ( $connstr );

$sql = "select top 30 * from s_menu where yc=1 and class_parentid=0 order by class_order desc";

$rsArr = $conn->execute ( $sql );

if ($rsArr) {

while ( ! $rsArr->eof ) {

echo "<div class=st1>".$rsArr["class_id"]." ".$rsArr["class_title"]."</div>";


read_menu($rsArr["class_id"]);

$rsArr->MoveNext();

}

} else {

print $conn->ErrorMsg ();

}

$rsArr = null;

$conn->close ();

$conn = null;
...全文
160 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Frank_cic 2017-03-24
  • 打赏
  • 举报
回复
变量作用域的问题,方法内不能直接调用或引用方法外变量,需要传参进入或是use引入. $conn 和 $connstr 均未在function内定义,也未传入,当然是undefined. 你的read_menu()只能该处使用,并不能复用(至少从贴出代码看不出复用),没有存在的必要.

<?php
require('conn.php');

$conn->open( $connstr );

$sql = "select top 30 * from s_menu where yc=1 and class_parentid=0 order by class_order desc";
$rsArr = $conn->execute( $sql );

if ($rsArr) {
    while (!$rsArr->eof) {
        echo "<div class=st1>".$rsArr["class_id"]."  ".$rsArr["class_title"]."</div>";
        $sql1 = "select * from s_menu where yc=1 and class_parentid={$rsArr['class_id']} order by class_order desc";
        $rsArr1 = $conn->execute( $sql1 );
        echo  "<div class=st2>".$rsArr1["class_title"]." </div>";
        $rsArr->MoveNext();
        unset($sql1, $rsArr1);
    }
} else {
    print $conn->ErrorMsg();
}

$rsArr = null;
$conn->close();
$conn = null;
lamking 2017-03-24
  • 打赏
  • 举报
回复
去翻翻php教程,看看变量作用域相关的文章吧
哎算了 2017-03-24
  • 打赏
  • 举报
回复
都看看
内容概要:本文围绕基于电感电容电流环PI与前馈补偿矩阵构造的跟网型储能变流器,开展dq坐标系下的阻抗理论建模与Simulink仿真对比研究。通过建立储能变流器在dq域的数学模型,设计包含电感电流内环、电容电流中间环和电压外环的多环控制结构,并引入前馈补偿矩阵以提升系统的动态响应能力和稳定性。在此基础上,采用小信号分析法推导系统的输出阻抗模型,构建完整的dq域阻抗理论框架,并利用Simulink平台搭建高保真仿真模型进行频域扫频验证,实现理论建模与仿真结果的精确对比,深入分析控制参数对系统阻抗特性的影响规律,揭示其在抑制并网系统振荡、提升稳定性方面的关键作用,为新能源并网系统的稳定性分析与优化设计提供坚实的理论支撑和技术路径。; 适合人群:具备电力电子、自动控制理论基础,从事新能源发电、储能系统、微电网或电力系统稳定性研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握跟网型储能变流器在dq域的阻抗建模方法;②理解多环控制与前馈补偿对系统阻抗特性的影响机制;③实现理论阻抗模型与Simulink仿真扫频结果的对比验证,支撑并网稳定性分析。; 阅读建议:学习者应结合控制理论与电力电子变换器知识,重点关注数学推导与仿真建模的一致性,建议动手复现Simulink仿真模型并进行参数敏感性分析,以深化对阻抗重塑机理的理解。

21,889

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧