请教一个smarty的问题连接数据库就在index.php里index.php 调用 index.htm  ,index.htm里<{include_php file="top.php"}> ,top.php调用top.htm 为什么在top.php 里操作不了数据库呢@ 有高手指点一下  ,因为top.htm就公用的 ,所以用top.php 单独操作它

解决方案 »

  1.   

    是不是top.php里操作数据库用的函数?
      

  2.   

    公司不能用QQ,不好意思。
    我也是初学,是不是局部变量,全局变量的原因?
    我也遇到过,原来是在最外面写的连接数据库,后来放到函数里,就不好用了,
    要是在函数里用外面定义的变量,就要在函数里加 global 指定为全局。
    希望能对你有帮助吧
    $dbbase = 'mydb';
    $uid = 'sa'; 
    $pwd = 'sa';
    $connectionInfo = array("Database"=>$dbbase,"UID"=>$uid,"PWD"=>$pwd); 
    $serverName = "SQLEXPRESS";
    //コネクションを開く
    function DBConnect(){
    global $dbbase,$uid,$pwd,$connectionInfo,$serverName,$conn;
    //コネクションを開く
    $conn = sqlsrv_connect($serverName,$connectionInfo) or die("コネクションが開くのができない。 "); 
    exit;
    //トランザクションを開始する
    sqlsrv_begin_transaction($conn);
    }
      

  3.   

    代码和你所说的 都没有问题 经过我的测试 top.php 应该是没有接收到index.php的数据库信息~ 可是我在top.php加上连接数据库的类就包错
    Fatal error: Cannot redeclare class Smarty in E:\AppServ\www\shipin\xf\libs\Smarty.class.php on line 65把连接数据库的类去掉(top.php)错误如下Fatal error: Call to undefined method stdClass::query() in E:\AppServ\www\shipin\xf\top.php on line 9
    query() 是存在 而且是好用的,因为我别的页面在用
      

  4.   

    公用文件没必要再写php 可以直接在模版文件下include模版建议把top.php文件源码拉出来看一下
      

  5.   

    你 new 了两次 Smarty 刚才我也遇到了这个问题因为在 global.php 全局文件声明了 new smarty  失误调用了两次就出错了。。你检查一下文件