Tidak berjaya menulis ke pangkalan data MySQL selepas pengesahan PHP
P粉221046425
P粉221046425 2023-09-13 09:54:01
0
1
489

Saya cuba menulis data ke pangkalan data selepas pengesahan tetapi tidak berjaya.

Setelah berjaya log masuk, saya ubah hala ke index.php

<?php
session_start();

if (isset($_SESSION["user_id"])) {
    $mysqli = require __DIR__ . "/database.php";
    $sql = "SELECT * FROM user
            WHERE id = {$_SESSION["user_id"]}";
    $result = $mysqli->query($sql);
    $user = $result->fetch_assoc();
}

?>
<!DOCTYPE html>
<html>
<head>
    <title>Home</title>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/water.css@2/out/water.css">
</head>
<body>
    <h1>Home</h1>
    <?php if (isset($user)): ?>
        <p>Hello <?= htmlspecialchars($user["name"]) ?></p>
        <form action="user-input.php" method="post" id="availDates">
            <label for="nickName">Nickname:</label>
            <input id="nickName" name="nickname" />
            
            <label for="startDate">Start Date:</label>
            <input type="date" id="startDate" name="startdate">
            <button type="submit">Submit</button>
        </form>
       
        <p><a href="logout.php">Log out</a></p>
    <?php else: ?>
        <p><a href="login.php">Log in</a> or <a href="signup.html">sign up</a></p>
    <?php endif; ?>
</body>
</html>

Dari sini, saya ingin menangkap nama dan tarikh dan menyerahkannya, tetapi selepas setiap penyerahan, saya melihat dalam phpmyadmin dan sel jadual kosong. Saya menggunakan xampp untuk dijalankan secara tempatan. Inilah kod yang saya cuba tangkap input daripada borang:

<?php

if (empty($_POST["nickname"])) {
    die("Name is required");
}

if (empty($_POST["date"])) {
   die("Name is required");
}

$mysqli = require __DIR__ . "/database.php";
$sql = "INSERT INTO user (nickname) VALUES (?)";
$stmt = $mysqli->stmt_init();

if ( ! $stmt->prepare($sql)) {
    die("SQL error: " . $mysqli->error);
}

$stmt->bind_param("sss", $_POST["name"]);
                  
if ($stmt->execute()) {
  echo "successful";
} else {
    if ($mysqli->errno === 1062) {
        die("error");
    } else {
        die($mysqli->error . " " . $mysqli->errno);
    }
}

Sebarang bantuan amatlah dihargai

P粉221046425
P粉221046425

membalas semua(1)
P粉517814372

Data borang mempunyai name属性。我猜你应该正确使用它们来构建插入查询,例如$_POST["nickname"]$_POST["startdate"]

dengan nilai "nama panggilan" dan "tarikh mula"

Jika anda masih menghadapi masalah, sila siarkan log ralat penuh untuk penyahpepijatan.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!