【发布时间】:2019-02-06 08:47:04
【问题描述】:
我的任务是升级一个用 php 5.2.17 编写并使用 Codeigniter 的旧 PHP Web 应用程序。从 PHP 5.2 升级到 5.6 时,我遇到了一些错误。乍一看,问题可能是使用旧的 PHP 语法以及 Codeigniter 的一些问题的混合。我从未与 Codeigniter 合作过,这使这项任务变得异常困难。
问题出现在一个页面上,您可以在该页面上编辑患者的一些现有数据,然后提交新的更新数据。几乎是一个 CRUD。
crud 在支持 > 5.6 PHP 的服务器上运行良好,但现在我已经转移到仅支持
第一个问题:在表单页面上出现这两个错误,并且这些变量中的数据没有显示在页面上。如果我决定提交新输入的数据,新数据也不会保存。
1) 试图获取非对象的属性 2)未定义的变量:行 页面错误让我知道我的错误发生在以下几行:
$anatomic_code = $rows->NerveCode;
$ProxAccess = $rows->ProxAccess;
$DistAccess = $rows->DistAccess;
通过阅读 Codeigniter 的文档,我被建议使用 [''] 来访问数据,如果我执行错误消息“尝试获取非对象的属性”就会消失,但我仍然有第二个错误并且仍然看不到页面上的数据。
这是一个更大的sn-p代码:
<div id="wrapper">
<?
$exam_id = $this->uri->segment(3);
$struct_id = $this->uri->segment(4);
$struct_type = $this->uri->segment(5);
$tech_id = $this->uri->segment(6);
$test_id = $this->uri->segment(7);
$TechName = $query_tech_type->row();
$side = $query_side->row();
//Update form
$hidden = array(
'Exam' => $exam_id,
'Struct_id' => $struct_id,
'Structure_type' => $struct_type,
'Tech_id' => $tech_id,
'Test' => $test_id
);
?>
<a href="<? echo site_url("auh/show_ind_patient/".$exam_id.""); ?> "><img src="<? echo base_url() . "public/holder/back.png"; ?>" border="0" title="Back to test page"></a>
<?
echo form_open("auh/update_enkel_test_values/","", $hidden);
echo "<h2>" . $TechName->Tech_name . "</h2>";
echo "<div id=\"tech_no\" style=\"display:none\">".$tech_id."</div>";
if ($struct_id == "1"){
foreach($query->result() as $rows):
echo "<h3>M." . $rows->MuscleName . ") (" . $side->SideText.")</h3>";
endforeach;
$anatomic_code = $rows->MuscleCode;
}
elseif ($struct_id == "2") {
foreach($query->result() as $rows):
echo "<h3>N." . $rows->NerveName . ") (" . $side->SideText.")</h3>";
endforeach;
$anatomic_code = $rows->NerveCode;
}
elseif ($struct_id == "3") {
foreach($query->result() as $rows):
if ($rows->NerveCode > 10000 ){
echo "<h3>N." . $rows->NerveName . ") (" . $side->SideText.")</h3>";
}
else {
echo "<h3>N." . $rows->NerveName . " (" . $rows->ProxName . " - ";
if ($rows->Code < 3000) {
echo "m.";
}
echo $rows->DistName . ") (" . $side->SideText.")</h3>";
}
endforeach;
$anatomic_code = $rows->NerveCode;
$ProxAccess = $rows->ProxAccess;
$DistAccess = $rows->DistAccess;
}
elseif ($struct_id == "4"){
foreach($query->result() as $rows):
$anatomic_code = $rows->NerveCode;
if ($rows->NerveCode > 10000 ){
echo "<h3>" . $rows->NerveName . " (". $side->SideText .")</h3>";
}
else{
echo "<h3>N." . $rows->NerveName . " - m." . $rows->MuscleName . " (". $side->SideText .")</h3>";
}
endforeach;
}
【问题讨论】:
标签: php codeigniter