【问题标题】:Cant write into DB无法写入数据库
【发布时间】:2022-11-23 16:30:00
【问题描述】:

我想将我网站的输入存储在同一台服务器上的数据库中。以前我用一个较小的测试它,它有效。然后我在一个新页面中构建它,没有错误,但我的数据库中也没有输入。也许有人可以帮助我:

<?php
    $nachname = $_POST["Nachname"];
    $vorname = $_POST["Vorname"];
    $food = $_POST["food"];
    $nachname_b = $_POST["Nachname_B"];
    $vorname_b = $_POST["Vorname_B"];
    $food_b = $_POST["food_B"];
    $Ankunft = $_POST["Anreisedatum"];
    $Kinder = $_POST["Kinder"];
    $mail = $_POST["Mail-Adresse"];

    $host = "127.0.0.1:3306";
$dbname = "XXX";
$username = "XXX";
$password = "XXX";

$conn = mysqli_connect($host, $username, $password, $dbname);

if (mysqli_connect_errno()) {
    die("Connection error: " . mysqli_connect_error());
}   

$sql = "INSERT INTO Guestlist (nachname, vorname, food, nachname_b, vorname_b, food_b, Ankunft, Kinder, mail)
        VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";

$stmt = mysqli_stmt_init($conn);

if ( ! mysqli_stmt_prepare($stmt, $sql)) {
 
    die(mysqli_error($conn));
}


mysqli_stmt_bind_param($stmt, "sssssssss",
                       $vorname,
                       $nachname,
                       $food,
                       $vorname_b,
                       $nachname_b,
                       $food_b,
                       $Ankunft,
                       $Kinder,
                       $mail);

mysqli_stmt_execute($stmt);

echo mysqli_stmt_affected_rows($stmt);

echo "Record saved.";

我用其他代码尝试过,结果相同。

【问题讨论】:

  • 您在执行 stmt 时没有测试任何 mysqli 错误 - mysqli_error

标签: php


【解决方案1】:

了解错误的最快方法是查看错误。我建议您在文档的开头使用以下代码来显示发生的所有错误:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

另外,我个人的建议是使用 PDO 而不是过时的 mysqli 数据库连接扩展。 关于 PDO 有一个很好的指南:https://phpdelusions.net/pdo

【讨论】:

  • 此 sn-p 不会显示与 MySQLi 相关的任何错误以及 MySQLi 如何/为什么过时?
猜你喜欢
  • 2020-08-03
  • 2015-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-07
  • 2018-07-22
  • 2016-03-26
相关资源
最近更新 更多