当前位置: 首页 > 知识库问答 >
问题:

如何在PHP中修复“通知:未定义的变量”?[重复]

周和歌
2023-03-14

代码:

Function ShowDataPatient($idURL)
{
    $query =" select * from cmu_list_insurance,cmu_home,cmu_patient where cmu_home.home_id = (select home_id from cmu_patient where patient_hn like '%$idURL%')
                     AND cmu_patient.patient_hn like '%$idURL%'
                     AND cmu_list_insurance.patient_id like (select patient_id from cmu_patient where patient_hn like '%$idURL%') ";

    $result = pg_query($query) or die('Query failed: ' . pg_last_error());

    while ($row = pg_fetch_array($result))
    {
        $hn = $row["patient_hn"];
        $pid = $row["patient_id"];
        $datereg = $row["patient_date_register"];
        $prefix = $row["patient_prefix"];
        $fname = $row["patient_fname"];
        $lname = $row["patient_lname"];
        $age = $row["patient_age"];
        $sex = $row["patient_sex"];
    }
    return array($hn, $pid, $datereg, $prefix, $fname, $lname, $age, $sex);
}

错误:

Notice: Undefined variable: hn in C:\xampp\htdocs\...
Notice: Undefined variable: pid in C:\xampp\htdocs\...
Notice: Undefined variable: datereg in C:\xampp\htdocs\...
Notice: Undefined variable: prefix in C:\xampp\htdocs\...
Notice: Undefined variable: fname in C:\xampp\htdocs\...
Notice: Undefined variable: lname in C:\xampp\htdocs\...
Notice: Undefined variable: age in C:\xampp\htdocs\...
Notice: Undefined variable: sex in C:\xampp\htdocs\...

我该怎么解决这个问题?

共有3个答案

华知
2023-03-14

我猜你的查询没有按照预期运行,你正在使用未定义的变量返回行。

同样,在执行变量赋值的方式中,每次循环迭代都会覆盖相同的变量,因此不会返回整个结果集。

最后,返回数字键的结果集而不是关联键的结果集似乎很奇怪。考虑只命名SELECT中需要的字段,并保留键分配。所以像这样的事情:

Function ShowDataPatient($idURL){
       $query =" select * from cmu_list_insurance,cmu_home,cmu_patient where cmu_home.home_id = (select home_id from cmu_patient where patient_hn like '%$idURL%')
                 AND cmu_patient.patient_hn like '%$idURL%'
                 AND cmu_list_insurance.patient_id like (select patient_id from cmu_patient where patient_hn like '%$idURL%') ";

   $result = pg_query($query) or die('Query failed: ' . pg_last_error());

   $return = array();
   while ($row = pg_fetch_array($result)){
       $return[] = $row;
   }          

   return $return;
}

你也可以考虑打开一个关于如何改进你的查询的问题,这是不是很严重。

阳凌
2023-03-14

在while循环之前声明它们。

$hn = "";
$pid = "";
$datereg = "";
$prefix = "";
$fname = "";
$lname = "";
$age = "";
$sex = "";

因为变量是在循环中声明和赋值的,所以您得到了通知。

袁翔
2023-03-14

在函数的开头定义变量,这样如果没有记录,变量就存在,你就不会得到错误。检查返回数组中的空值。

$hn = null;
$pid = null;
$datereg = null;
$prefix = null;
$fname = null;
$lname = null;
$age = null;
$sex = null;
 类似资料:
  • 我有这行代码在PHP中读取一个文件的CSV格式与MySQL数据库的结构,并显示创建它所需的SQL代码。我在这里遇到的唯一问题是,我不能打印出主键变量,因为它说它没有定义,即使我之前定义了它。有人能帮我解释一下为什么会出现这个错误吗?这是我的代码:

  • 我正在运行一个PHP脚本,并继续收到如下错误: 注意:第10行C:\wamp\www\myPath\index.php中未定义的变量:my_variable_name 注意:第11行未定义索引:my_index C:\wamp\www\myPath\index.php 第10行和第11行如下所示: 这些错误信息的含义是什么? 为什么他们突然出现?我曾经使用这个脚本多年,我从来没有遇到过任何问题。

  • 我得到未定义的索引错误。我在同一个网站上看到了一个类似类型的问题。我无法修复这个错误,有人能帮助我吗

  • 我安装了Ngnix服务器,并将其配置为: } 我收到以下错误(从我的error.log复制): 2015/12/16 00:27:37[错误]952#0:*9 FastCGI发送到stderr:“PHP消息:PHP通知:未定义索引:第245行/usr/share/nginx/html/admin interface/login.PHP中的用户名PHP消息:PHP通知:未定义索引:第249行/usr

  • 我想把数据库放在Usbstick上,而不是放在我的Raspberrypi上。 首先我做了: > 服务mysql停止 mkdir/media/pi/emtec/mySQL nano/etc/mysql/my.cnf和更改的datadir=/media/pi/emtec/mysql CP-RV/var/lib/mysql/*/media/USB4/mysql/ Chown-r MySQL:MySQL/

  • 问题内容: 我将使用ReadFile: 我该如何解决? 问题答案: 使用包名称限定它: