【问题标题】:Failing to insert data from a form into a database using PDO无法使用 PDO 将表单中的数据插入数据库
【发布时间】:2017-10-10 16:37:25
【问题描述】:

我正在尝试将我的数据从表单中获取到数据库中,我使用了在线教程来执行此操作,一切正常到必须将其实际获取到数据库的地步,我只是找不到问题所在它

    $kenteken = $_POST['kenteken'];
    $werkplaatsnr = $_POST['werkplaatsnr'];
    $datum = $_POST['datum'];
    $medewerker = $_POST['medewerker'];

    $pdoQuery = "INSERT INTO `WPOnderhoud`(`kenteken`, `werkplaats`, `datum`, `medewerker`) VALUES (:kenteken,:werkplaatsnr,:datum,:medewerker)";

    $pdoResult = $pdoConnect->prepare($pdoQuery);

    $pdoExec = $pdoResult->execute(array(":kenteken"=>$kenteken,":werkplaatsnr"=>$werkplaatsnr,":datum"=>$datum,":medewerker"=>$medewerker));

    if($pdoExec)
    {
    echo 'Onderhoudsbeurt ingevoerd';

    } else {
        echo 'Er ging iets mis';
    }
}

这是我的代码,不是全部,因为上面是与数据库的连接,但由于它确实连接,所以我看不出有任何错误。

$pdoConnect 是数据库连接

这是上面提到的形式:

<form action="onderhoud.php" method="POST">

<div class="form-group">
    <label class="control-label">Kenteken</label>
    <input type="text" class="form-control" name="kenteken">
</div>  

<div class="form-group">
    <label class="control-label">Merk</label>
    <input type="text" class="form-control" name="merk">
</div>

<div class="form-group">
    <label class="control-label">Werkplaats nr</label>
    <input type="number" class="form-control" name="werkplaatsnr">
</div>

<div class="form-group">
    <label class="control-label">Datum</label>
    <input type="date" class="form-control" name="datum">
</div>                                  

<div class="form-group">
    <label class="control-label">Medewerker</label>
    <select class="form-control" id="state_id">
        <option>R. Krol</option>
        <option>B. de Vries</option>
        <option>J. Jansen</option>
        <option>P .Bakker</option>
    </select>                   
</div>

<div class="form-group">
    <button type="submit" name="insert" class="btn btn-primary">Invoeren</button>
</div>     

</form> 

【问题讨论】:

  • 你检查过你的错误日志吗?
  • 是的,查看错误将有助于理解问题
  • 你的选择输入没有名字,所以没有传入,所以$medewerker = $_POST['medewerker'];会抛出错误。
  • 我多么愚蠢,忘记添加一个名字,这就是为什么它不起作用谢谢:)

标签: php mysql pdo


【解决方案1】:

试试下面,

$pdoExec = $pdoConnect->prepare("INSERT INTO WPOnderhoud values('',?,?,?,?)");
$pdoExec ->bindParam(1,$kenteken);
$pdoExec ->bindParam(2,$werkplaatsnr);
$pdoExec ->bindParam(3,$datum);
$pdoExec ->bindParam(4,$medewerker);
$pdoExec ->execute();

希望对你有所帮助。

【讨论】:

  • 试试这个为什么?为什么要插入一个空字符串?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-11
  • 2014-06-29
  • 1970-01-01
  • 2016-06-03
  • 2021-08-20
  • 2014-08-28
相关资源
最近更新 更多