多数据库问题
发布于:2022-01-17 09:50:54
#1 CoreFamily
在include\functions.php下放入如下代码
$dsn_test = spClass('db_oracle', array('driver' => 'oracle','host' => '10.100.101.109:1521/TEST','login' => 'system','password' => 'manager','prefix' => '','persistent' => FALSE), SP_PATH.'/Drivers/oracle.php', true);
………………
?>
在运行时提示:数据库链接错误 : ORA-01017
同样的配置在入口文件中却一切正常。
$spConfig = array(
'db_driver_path' => SP_PATH.'/Drivers/oracle.php',
'db' => array(
'driver' => 'oracle',
'host' => '10.100.101.109:1521/TEST',
'login' => 'system',
'password' => 'manager',
'prefix' => '', // 表前缀
'persistent' => FALSE, // 是否使用长链接
)
)
为何导致这样的情况,在手册中找不到答案。
2012-12-18 09:49:03
#2 jake
仔细看
http://www.speedphp.com/thread-3794-1-1.htmlspClass('db_oracle',
array(
array(
'driver' => 'oracle','host' => '10.100.101.109:1521/TEST','login' => 'system','password' => 'manager','prefix' => '','persistent' => FALSE
))
, SP_PATH.'/Drivers/oracle.php', true);
红色部分才是db的配置,外面还需要一个array()包起来
2012-12-18 10:28:40
#3 CoreFamily
谢谢jake的帮助,
在入口文件增加修改好的配置后,控制器代码如下
class Asset extends spController
{
function mtgz(){
$jw_mtgz = spClass('test1');
$jw_mtgz->_db = $dsn_test;
$condition = array(null);
$result = $jw_mtgz->find($condition);
echo "{$result['testname']}";
}
}
访问后错误提示是
Call to a member function __val_escape() on a non-object in E:\Web8080\www\WorkSpeed\SpeedPHP\Core\spModel.php on line 112
$condition中已经没有任何函数,但是为何还是会报错?
2012-12-18 11:26:53
#4 jake
为什么要 $condition = array(null); ,手册上没有说过有这种语法。
2012-12-18 11:39:38
#5 CoreFamily
以为换成其他条件,
也是一样显示的Call to a member function __val_escape() on a non-object in E:\Web8080\www\WorkSpeed\SpeedPHP\Core\spModel.php on line 112这个错误呀。
为了能说明问题我才这样写的。
2012-12-18 12:08:36
#6 jake
function mtgz(){
$jw_mtgz = spClass('test1');
$jw_mtgz->_db = $dsn_test;
$condition = array(null);
$result = $jw_mtgz->find($condition);
echo "{$result['testname']}";
}
看这程序,$dsn_test的值是什么? 看看php的变量使用范围吧。
2012-12-18 12:43:21
#7 xieguolun
01.// MSSQL驱动实例
02.$dsn_mssql = spClass('db_mssql',array( 'MSSQL的配置'), SP_PATH.'/Drivers/mssql.php', TRUE);
03.// MYSQL驱动实例
04.$dsn_mysql = spClass('db_mysql',array( 'MYSQL的配置'), SP_PATH.'/Drivers/mysql.php', TRUE); // MYSQL
该放在哪里呢?
2014-02-13 12:20:44
#8 jake
xieguolun 发表于 2014-2-13 12:20
01.// MSSQL驱动实例
02.$dsn_mssql = spClass('db_mssql',array( 'MSSQL的配置'), SP_PATH.'/Drivers/ms ...
放在使用数据库model之前
2014-02-13 15:13:29
#9 y_e_s_2011@163.
正在找这个问题呢
2014-02-13 20:21:01
#10 xieguolun
怎么用php5.3 连接远程oracle9呢?
2014-02-14 00:01:55
#11 xieguolun
SpeedAMP能连接远程oracle9吗?如能怎么配置?
2014-02-14 00:03:56
#12 jake
xieguolun 发表于 2014-2-14 00:03
SpeedAMP能连接远程oracle9吗?如能怎么配置?
要加上oracle的驱动,具体请参考PHP官网手册。
2014-02-14 10:03:13