我正在测试我创建的应用程序是否存在潜在的错误,并修复了一些安全漏洞。我想到要检查该应用程序的数据库和表是否存在,如果运行,它将运行代码,如果表不存在,它将回显警告消息。但是,每当我测试一项功能时,我都会收到一条错误消息:试图获取非对象的属性“ project_name”。这是我要测试的表中模型中的代码和列存在:
public function get_project($id){
if ($this->db->field_exists('id','projects') == FALSE) {
$this->db->where('id', $id);
$query = $this->db->get('projects');
if ($query->num_rows() > 0) {
return $query->row();
}return false;
}else{
echo "Table and column does not exist!";
}
}
如您所见,我在其中测试该字段是否存在的行,其值为 FALSE ,以便我在 else 中显示错误警告声明。但是,每当执行此操作时,我都会收到一条错误消息,说在我的视图中试图获取非对象的属性'project_name'。这是我认为的代码:
<h3>Project Name:<?php echo $project_data->project_name; ?></h3>
<h3>Date Created:<?php echo $project_data->date_created; ?><h3>
<h3>Description:</h3>
<p class='projects-description'>
<?php echo $project_data->project_body; ?>
</p>
答案 0 :(得分:0)
您对该字段的测试是否存在,
请从以下位置更改此行:
if ($this->db->field_exists('id','projects') == FALSE) {
收件人
if ($this->db->field_exists('id','projects') != FALSE) {
那你就好了!
编辑,将上面的代码放在
内if ($this->db->table_exists('yourtablename') )
{
// table exists
}
else
{
// table does not exist
}
答案 1 :(得分:0)
如果陈述是正确或空白,则表示您有错, 请更改此行:
if ($this->db->field_exists('id','projects')==FALSE) {
使用此行
if ($this->db->field_exists('id','projects')) {
这里..
public function get_project($id){
if ($this->db->field_exists('id','projects')) { //its already check true
$this->db->where('id', $id);
$query = $this->db->get('projects');
if ($query->num_rows() > 0) {
return $query->row();
}return false;
}else{
echo "Table and column does not exist!";
}
}
}