milk100 发表于 2009-4-10 11:54:01

关于【《PHP 敏捷开发框架》 】里面一个小疑问

里面第四章最后:附录:使用 MYSQL 查询语句创建“websites”数据库,我是已经建立了websites数据库,但是里面的字段跟例子的字段不相符,
例如:sites 表
CREATE TABLE IF NOT EXISTS `sites` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`url` VARCHAR(100) NOT NULL,
`un` VARCHAR(50) NOT NULL,
`pw` VARCHAR(50) NOT NULL,
`client1` INT(10) NOT NULL DEFAULT '0',
`client2` INT(10) NOT NULL DEFAULT '0',
`admin1` INT(10) NOT NULL DEFAULT '0',
`admin2` INT(10) NOT NULL DEFAULT '0',`domainid` INT(10) NOT NULL DEFAULT '0',
`hostid` INT(10) NOT NULL DEFAULT '0',
`webroot` VARCHAR(50) NOT NULL,
`files` TEXT NOT NULL,`filesdate` INT(11) NOT NULL DEFAULT '0',`lastupdate` INT(11) NOT NULL DEFAULT '0',
`submit` VARCHAR(25) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=15;


实例中提到的【clientid】字段都找不到的,奇怪,不知道大家会不会
$this->db->select('url','name','clientid');
$query = $this->db->get('sites');
而且建立完之后这个似乎也是空表,没有任何数据。

Hex 发表于 2009-4-10 12:55:41

关于第一点,我回去查一下,也许是书的一个错误。
第二点,我想这里应该就是建的空表吧。原书就是这样的,呵呵。

milk100 发表于 2009-4-10 13:17:06

ok,谢谢Hex!

milk100 发表于 2009-4-10 17:20:01

本帖最后由 milk100 于 2009-4-10 17:22 编辑

刚刚按照实例做,又发现一个 问题:查询数据库显示所有列则没有问题,指定显示列时则出问题了,源代码如下:


function q2()
{
$this->load->database();
$this->db->select();
$this->db->from('sites');
$this->db->orderby('name','desc');
$this->db->limit(5);
$query=$this->db->get();
foreach ($query->result() as $row)
{
   print $row->url."";
   print $row->name."";
   //print $row->un."";
   //print $row->pw."";
   print "<br>";
   //print $row->client;
}



上面这个select所有列是正常的!url和name列都是显示出来!


function q2()
{
$this->load->database();
$this->db->select('url','name');
$this->db->from('sites');
$this->db->orderby('name','desc');
$this->db->limit(5);
$query=$this->db->get();
foreach ($query->result() as $row)
{
   print $row->url."";
   print $row->name."";
   //print $row->un."";
   //print $row->pw."";
   print "<br>";
   //print $row->client;
}


如果指定显示url和name列则出现如下错误:
www.mile1.com   
A PHP Error was encounteredSeverity: Notice
Message: Undefined property: stdClass::$name
Filename: controllers/start.php
Line Number: 69


www.kate1.com   
A PHP Error was encounteredSeverity: Notice
Message: Undefined property: stdClass::$name
Filename: controllers/start.php
Line Number: 69

Hex 发表于 2009-4-10 18:52:34

看看你的 CI 版本,这本书的版本是 1.5。
我看了一下 select 方法的参数可能新版已经变了,目前手册里是 select('url, name')
你写的是 select('url', 'name')

milk100 发表于 2009-4-11 11:33:37

好的谢谢,我回头试试看。
页: [1]
查看完整版本: 关于【《PHP 敏捷开发框架》 】里面一个小疑问