带有PDO代码的未定义索引

时间:2015-04-15 15:01:49

标签: php sql pdo

尝试使用以下代码将数据插入表中:

if ($valid) {
            $pdo = Database::connect();
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $sql = "INSERT INTO customers (FName, LName, JAddress, BAddress, Phone, APhone, Email, AEmail) values(?, ?, ?, ?, ?, ?, ?, ?);";
            $q = $pdo->prepare($sql);
            $q->execute(array($FName,$LName,$JAddress,$Baddress,$Phone,$APhone,$Email,$AEmail,$id));
            Database::disconnect();
            header("Location: index.php");
        }

// keep track post values
        $id       = $POST['id'];
        $FName    = $_POST['FName'];
        .....etc

形式

<div class="control-group <?php echo !empty($nameError)?'error':'';?>">
                        <label class="control-label">ID</label>
                        <div class="controls">
                            <input name="id" type="text"  placeholder="ID" value="<?php echo !empty($id)?$id:'';?>">
                            <?php if (!id($idError)): ?>
                                <span class="help-inline"><?php echo $idError;?></span>
                            <?php endif; ?>
                        </div>
                      </div>
                      <div class="control-group <?php echo !empty($FNameError)?'error':'';?>">
                        <label class="control-label">First Name</label>
                        <div class="controls">
                            <input name="FName" type="text"  placeholder="First Name" value="<?php echo !empty($FName)?$FName:'';?>">
                            <?php if (!empty($FNameError)): ?>
                                <span class="help-inline"><?php echo $FNameError;?></span>
                            <?php endif; ?>
                        </div>
                      </div>

我进入一个页面,显示ID表单字段,我想保持隐藏,当然还有自动增量。在表格字段下面我得到: 调用未定义的函数id()

如果我输入ID#并按回车键,我会收到以下错误: 注意:未定义的变量:POST 注意:未定义的索引:电话 ...等

我知道这必须是我的一些摸索关键,但我没有发现它。有谁看到我哪里出错了?

1 个答案:

答案 0 :(得分:1)

这一行$id = $POST['id'];

$POST

缺少下划线:

$_POST

这是一个超级全球http://php.net/manual/en/language.variables.superglobals.php

  • 解释了这个通知。

Nota:

中还有一个额外的参数$id
((array($FName,$LName,$JAddress,$Baddress,$Phone,$APhone,$Email,$AEmail,$id))

也可能造成问题。