多数据库访问设置

#1 tphpn

代码如下:

$dsn_sp = spClass('db_mssql',array(array('driver' => 'mssql','port'        =>        1433,'host' => 'localhost','login' => 'sa','password' => '123456','database' => 'SPDB',)), SP_PATH.'/Drivers/mssql.php', TRUE);
$Portal_SP         = spClass("Portal");
$Portal_SP->_db = $dsn_sp;
$this->results        = $Portal_SP->findSql("select top 10 * from SP_Table");


这样执行,提示Fatal error: Call to undefined function mysql_connect() in D:\ApacheR\DB_Operation\SpeedPHP\Drivers\mysql.php on line 92
是设置错了还是没起作用,麻烦解答;

2013-01-08 17:20:29

#2 jake

Call to undefined function mysql_connect()

你的php环境没开mysql扩展

2013-01-08 17:39:00

#3 tphpn

如果我是用MSSQL,不用mysql那是不是也需要开mysql扩展呢?

2013-02-01 09:20:07

#4 php菜鸟

tphpn 发表于 2013-2-1 09:20
如果我是用MSSQL,不用mysql那是不是也需要开mysql扩展呢?
用MSSQL很蛋疼的

2013-02-01 11:35:36

#5 jake

tphpn 发表于 2013-2-1 09:20
如果我是用MSSQL,不用mysql那是不是也需要开mysql扩展呢?
上面的提示和文件名都写着你是在用mysql

2013-02-01 12:51:53

#6 tphpn

是,我知道提示和文件名都是mysql,但是同时,上面只有对mssql的配置,这个需要怎么处理呢?

2013-02-05 10:38:11

#7 tphpn

tphpn 发表于 2013-2-1 09:20
如果我是用MSSQL,不用mysql那是不是也需要开mysql扩展呢?
雀湿感觉到蛋痛了.{:soso_e127:}

2013-02-05 10:45:52

#8 jake

tphpn 发表于 2013-2-5 10:38
是,我知道提示和文件名都是mysql,但是同时,上面只有对mssql的配置,这个需要怎么处理呢? ...
应该是你的配置一开始是mysql的(在index.php里面),所以先是找不到mysql

2013-02-05 11:32:13

#9 tphpn

终于被我找到原因了,不过还是要多谢jake的热心解答;
把原因与各位分享一下,让后来的朋友可以不在被这个问题困扰:

在最开始的时候,在index.php中,我并没有初始化db的配置,所以在使用$Portal_SP         = spClass("Portal"); 时,就找去默认的db,而默认的db刚好是mysql 配置,所以就出了错;

解决办法:在index中加入对可连接db的配置,取代默认的mysql db,然后再使用以下代码就不会有问题了;
$dsn_sp = spClass('db_mssql',array(array('driver' => 'mssql','port'        =>        1433,'host' => 'localhost','login' => 'sa','password' => '123456','database' => 'SPDB',)), SP_PATH.'/Drivers/mssql.php', TRUE);
$Portal_SP         = spClass("Portal");
$Portal_SP->_db = $dsn_sp;
$this->results        = $Portal_SP->findSql("select top 10 * from SP_Table");

2013-02-05 11:56:10