__prepera_format在Mysql和SqlServer中的不同表现

#1 richard

我有个关于__prepera_format的问题。
框架在mysql数据库下运行正常,我切换至sqlserver后,连接数据库正常,但调用模型类的create时返回false.
我跟踪到create内部,发现其内部调用__prepera_format后返回值($row)为null。
jake,这个问题如何解决呢?
大家有没有遇到同样的问题呢?
我是新手,希望得到指教!谢谢

以下是我的代码:
 
$guestbook = spClass("guestbook");
  $newrow = array
  (
   'name' => $this->spArgs('name'),
   'title' => $this->spArgs('title'), // 从spArgs获取到表单提交上来的title
   'contents' => $this->spArgs('contents')
  );
  if($guestbook->create($newrow))
  {
   echo "Leave msg OK,Back";
  }
  else
  {
   echo "Leave msg failed,Back";
  }

2010-06-17 10:13:02

#2 azwl

回复 1 richard

我找了一下mssql的代码,好像是有问题!
    /**
  * 获取数据表结构
  *
  * @param tbl_name  表名称
  */
public function getTable($tbl_name)
{
  $result = $this->getArray("SELECT syscolumns.name FROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype AND syscolumns.id = object_id('{$tbl_name}')");
  $columns = array();
  foreach( $result as $column )$columns[] = array('Field'=>$column);
  return $columns;
}

2010-06-17 11:07:35

#3 richard

这个我调试过程中在__prepera_format函数中发现的不同(foreach中的$col结构不同),截图如下:
Sqlserver:mssql.jpg

Mysql:

2010-06-17 11:16:36

#4 azwl

问题应该出在这句:
$columns[] = array('Field'=>$column);


顺便问题一下,用时用的哪个IDE?

2010-06-17 11:59:08

#5 jake

mark

2010-06-17 12:33:11

#6 richard

to azwl, 我使用的是zend studio 5.5
to jake, 这个是sp的问题吗,还是我程序的问题,附,我的数据库连接:
 define("SP_PATH",dirname(__FILE__)."/SpeedPHP");
define("APP_PATH",dirname(__FILE__));
$spConfig = array
(
'db' => array
(
     'driver' => 'mssql',   // 驱动类型
     'host' => 'localhost', // 数据库链接字符串
     'login' => 'sa',     // 用户名
     'password' => '123456',      // 密码
     'database' => 'test',      // 库名称
     'prefix' => '',           // 表前缀
     'persistent' => FALSE,    // 是否使用长链接
),
'db_driver_path' => SP_PATH.'/Drivers/mssql.php',

'view' => array(
  'enabled' => TRUE, // 开启视图
  'config' =>array(
   'template_dir' => APP_PATH.'/tpl', // 模板目录
   'compile_dir' => APP_PATH.'/tmp', // 编译目录
   'cache_dir' => APP_PATH.'/tmp', // 缓存目录
   'left_delimiter' => '<{',  // smarty左限定符
   'right_delimiter' => '}>', // smarty右限定符
  ),
)
);
require(SP_PATH."/SpeedPHP.php");
spRun();

2010-06-17 14:56:11

#7 azwl

不好意思,源代码没有好好看。我前面的回复不对。sorry!!

2010-06-17 16:29:49

#8 richard

我下载了svn上最新的sp, 问题已经解决,谢谢各位关注,谢谢jake的及时更新。

2010-06-17 18:01:51