用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4228|回复: 5
收起左侧

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

[复制链接]
发表于 2009-4-10 11:54:01 | 显示全部楼层 |阅读模式
里面第四章最后:附录:使用 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');
而且建立完之后这个似乎也是空表,没有任何数据。
发表于 2009-4-10 12:55:41 | 显示全部楼层
关于第一点,我回去查一下,也许是书的一个错误。
第二点,我想这里应该就是建的空表吧。原书就是这样的,呵呵。
 楼主| 发表于 2009-4-10 13:17:06 | 显示全部楼层
ok,谢谢Hex!
 楼主| 发表于 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
发表于 2009-4-10 18:52:34 | 显示全部楼层
看看你的 CI 版本,这本书的版本是 1.5。
我看了一下 select 方法的参数可能新版已经变了,目前手册里是 select('url, name')
你写的是 select('url', 'name')
 楼主| 发表于 2009-4-11 11:33:37 | 显示全部楼层
好的谢谢,我回头试试看。

本版积分规则