PHP MVC初学者问题...
程序员文章站
2022-05-28 09:22:04
...
function postedit(){ $this->load->helper("url"); $this->load->helper("form"); //$sql = "select * from userinfo where username = 'zhangning'"; $data["user"] = $this->db->query("select * from userinfo where username = '".$this->uri->segment(3)."'"); $this->load->view("postedit",$data); }
前台:
Age ?>
A PHP Error was encountered
Severity: Notice
Message: Undefined property: CI_DB_mysql_result::$Age
Filename: views/postedit.php
Line Number: 9
啥原因呀?找了半天了。。。刚学2 3天。。看不出来哪有错。
$data["user"] ="fsdfsd";如果这样前台会输出值得
回复讨论(解决方案)
这个错可以不理会,定义一下错误级别就行了。
你的query只是查询,并未返回结果啊,你看看ci手册
这个错可以不理会,定义一下错误级别就行了。
你的query只是查询,并未返回结果啊,你看看ci手册
你说的该不会是这个吧
在System文件下下的DataBase文件夹下
/** * Execute the query * * Accepts an SQL string as input and returns a result object upon * successful execution of a "read" type query. Returns boolean TRUE * upon successful execution of a "write" type query. Returns boolean * FALSE upon failure, and if the $db_debug variable is set to TRUE * will raise an error. * * @access public * @param string An SQL query string * @param array An array of binding data * @return mixed */ function query($sql, $binds = FALSE, $return_object = TRUE) { if ($sql == '') { if ($this->db_debug) { log_message('error', 'Invalid query: '.$sql); return $this->display_error('db_invalid_query'); } return FALSE; } // Verify table prefix and replace if necessary if ( ($this->dbprefix != '' AND $this->swap_pre != '') AND ($this->dbprefix != $this->swap_pre) ) { $sql = preg_replace("/(\W)".$this->swap_pre."(\S+?)/", "\\1".$this->dbprefix."\\2", $sql); } // Compile binds if needed if ($binds !== FALSE) { $sql = $this->compile_binds($sql, $binds); } // Is query caching enabled? If the query is a "read type" // we will load the caching class and return the previously // cached query if it exists if ($this->cache_on == TRUE AND stristr($sql, 'SELECT')) { if ($this->_cache_init()) { $this->load_rdriver(); if (FALSE !== ($cache = $this->CACHE->read($sql))) { return $cache; } } } // Save the query for debugging if ($this->save_queries == TRUE) { $this->queries[] = $sql; } // Start the Query Timer $time_start = list($sm, $ss) = explode(' ', microtime()); // Run the Query if (FALSE === ($this->result_id = $this->simple_query($sql))) { if ($this->save_queries == TRUE) { $this->query_times[] = 0; } // This will trigger a rollback if transactions are being used $this->_trans_status = FALSE; if ($this->db_debug) { // grab the error number and message now, as we might run some // additional queries before displaying the error $error_no = $this->_error_number(); $error_msg = $this->_error_message(); // We call this function in order to roll-back queries // if transactions are enabled. If we don't call this here // the error message will trigger an exit, causing the // transactions to remain in limbo. $this->trans_complete(); // Log and display errors log_message('error', 'Query error: '.$error_msg); return $this->display_error( array( 'Error Number: '.$error_no, $error_msg, $sql ) ); } return FALSE; } // Stop and aggregate the query time results $time_end = list($em, $es) = explode(' ', microtime()); $this->benchmark += ($em + $es) - ($sm + $ss); if ($this->save_queries == TRUE) { $this->query_times[] = ($em + $es) - ($sm + $ss); } // Increment the query counter $this->query_count++; // Was the query a "write" type? // If so we'll simply return true if ($this->is_write_type($sql) === TRUE) { // If caching is enabled we'll auto-cleanup any // existing files related to this particular URI if ($this->cache_on == TRUE AND $this->cache_autodel == TRUE AND $this->_cache_init()) { $this->CACHE->delete(); } return TRUE; } // Return TRUE if we don't need to create a result object // Currently only the Oracle driver uses this when stored // procedures are used if ($return_object !== TRUE) { return TRUE; } // Load and instantiate the result driver $driver = $this->load_rdriver(); $RES = new $driver(); $RES->conn_id = $this->conn_id; $RES->result_id = $this->result_id; if ($this->dbdriver == 'oci8') { $RES->stmt_id = $this->stmt_id; $RES->curs_id = NULL; $RES->limit_used = $this->limit_used; $this->stmt_id = FALSE; } // oci8 vars must be set before calling this $RES->num_rows = $RES->num_rows(); // Is query caching enabled? If so, we'll serialize the // result object and save it to a cache file. if ($this->cache_on == TRUE AND $this->_cache_init()) { // We'll create a new instance of the result object // only without the platform specific driver since // we can't use it with cached data (the query result // resource ID won't be any good once we've cached the // result object, so we'll have to compile the data // and save it) $CR = new CI_DB_result(); $CR->num_rows = $RES->num_rows(); $CR->result_object = $RES->result_object(); $CR->result_array = $RES->result_array(); // Reset these since cached objects can not utilize resource IDs. $CR->conn_id = NULL; $CR->result_id = NULL; $this->CACHE->write($sql, $CR); } return $RES; }
db类是放在那个地方,你只要看手册教程乍样读就行了。
$user->Age 改作 $user->age
php 的变量名、对象的属性名、数组的关联键是区分大小写的
你的 $user->Age 是查询结果($data["user"] = $this->db->query("select * from use ....)
如果能写成这样的话,那么对应的字段名一定也要是 Age,但一般都不这么写,只是习惯性的一律小写
好啦。我知道啥原因啦。
还是自己不熟悉php原因
这些东西应该多看CI 多练就行
灰常感谢2位!!
推荐阅读
-
PHP浮点数的一个常见问题
-
php post大量数据时发现数据丢失问题解决方法
-
php smarty truncate UTF8乱码问题解决办法
-
ASP.Net MVC_DotNetZip简单使用方法,解决文件压缩的问题
-
解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法
-
PHP IE中下载附件问题解决方法
-
vs2015/vs2013中mvc5 viewbag总是出现问题该怎么办?
-
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
-
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
-
PHP file_exists问题杂谈