Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP致命错误,我的站点中的未捕获错误_Php_Pdo - Fatal编程技术网

PHP致命错误,我的站点中的未捕获错误

PHP致命错误,我的站点中的未捕获错误,php,pdo,Php,Pdo,大家好 我有一个关于我的PHP网站的问题 因此,基本上这是一个用户可以登录的网站,他们需要填写姓名、姓氏、居住地和电子邮件 然后数据将保存在MyAdmin数据库中,在那里我创建了显示所有用户的站点,因此当您单击按钮时,所有用户都将显示。 我们还创建了一个随机更新站点。 最后一件事,我们需要建立另一个更新站点,在这里您可以根据需要更新来自每个用户的数据 这是一个学校项目,我已经问过我的老师,但他每次都会生气,所以我真的很生气,我不想问这个家伙。 好的,我将在这里复制代码: <?php if

大家好

我有一个关于我的PHP网站的问题

因此,基本上这是一个用户可以登录的网站,他们需要填写姓名、姓氏、居住地和电子邮件

然后数据将保存在MyAdmin数据库中,在那里我创建了显示所有用户的站点,因此当您单击按钮时,所有用户都将显示。
我们还创建了一个随机更新站点。
最后一件事,我们需要建立另一个更新站点,在这里您可以根据需要更新来自每个用户的数据

这是一个学校项目,我已经问过我的老师,但他每次都会生气,所以我真的很生气,我不想问这个家伙。 好的,我将在这里复制代码:

<?php
if (!isset($_POST["update"])) {
    $pdo = new PDO('mysql:host=localhost;dbname=user', 'root', '');
    $id = isset($_GET['id']) ? $_GET['id'] : '';
    $stmt = $pdo->query("SELECT * FROM user WHERE ID = $id");
    $row = $stmt->fetch();
}
if (isset($_POST["update"])) {
    $pdo = new PDO('mysql:host=localhost;dbname=user', 'root', '');
    if (!isset($name)) {
        $id = $_POST['ID'];
        $Vorname = $_POST['Vorname'];
        $Nachname = $_POST['Nachname'];
        $Postleitzahl = $_POST['Postleitzahl'];
        $Email = $_POST['Email'];
        $Menge = $_POST['Menge'];
        $Ratenzahlung = $_POST['Ratenzahlung'];
    }
    $stmt = $pdo->prepare($sql = "UPDATE user SET Vorname = '$Vorname', Nachname = '$Nachname', Postleitzahl = '$Postleitzahl', Email = '$Email', Menge = '$Menge', Ratenzahlung = '$Ratenzahlung',  WHERE ID = $id");
    $stmt = $pdo->prepare($sql);
    $stmt->execute();
    echo "Aktualisieren erfolgreich.";
    require_once("showv2.php");
}
if (!isset($Vorname)) {
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <title> Bookmark Update </title>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
        </head>
        <body>
            <form action="edit.php" method="post">
                <input type="hidden" name="ID" value=<?php echo $row["ID"]; ?>>
                <input type="text" name="Vorname" style="width:50px" value=<?php echo $row["Vorname"]; ?>>
                <input type="text" name="Nachname" value=<?php echo $row["Nachname"]; ?>>
                <input type="number" name="Postleitzahl" value=<?php echo $row["Postleitzahl"]; ?>>
                <input type="text" name="Email" style="width:50px" value=<?php echo $row["Email"]; ?>>
                <input type="number" name="Menge" style="width:50px" value=<?php echo $row["Menge"]; ?>>
                <input type="text" name="Ratenzahlung" style="width:50px" value=<?php echo $row["Ratenzahlung"]; ?>>
                <input type="submit" name="update" value="Update Data">
            </form>
        </body>
    </html>
    <?php
}
?>
您的查询失败

$stmt = $pdo->query("SELECT * FROM user WHERE ID = $id");
$row = $stmt->fetch();
$id是上述查询中的字符串

正确的查询应该是:

$stmt = $pdo->prepare("SELECT * FROM user WHERE ID = ?");
$stmt->execute([$id]);
$row = $stmt->fetch();
此外,在更新查询中,您使用的预处理语句是错误的

这就是你应该如何使用它们

<?php

if (isset($_POST["update"])) {
    $pdo = new PDO('mysql:host=localhost;dbname=user', 'root', '');
    if (!isset($name)) {
        $id = $_POST['ID'];
        $Vorname = $_POST['Vorname'];
        $Nachname = $_POST['Nachname'];
        $Postleitzahl = $_POST['Postleitzahl'];
        $Email = $_POST['Email'];
        $Menge = $_POST['Menge'];
        $Ratenzahlung = $_POST['Ratenzahlung'];
    }


    $stmt = $pdo->prepare("UPDATE user SET Vorname = ?, Nachname = ?, Postleitzahl = ?, Email = ?, Menge = ?, Ratenzahlung = ?  WHERE ID = ?");
    $stmt->execute([$Vorname,$Nachname,$Postleitzahl,$Email,$Menge,$Ratenzahlung,$id]);
    echo "Aktualisieren erfolgreich.";
    require_once("showv2.php");
}
您的查询失败

$stmt = $pdo->query("SELECT * FROM user WHERE ID = $id");
$row = $stmt->fetch();
$id是上述查询中的字符串

正确的查询应该是:

$stmt = $pdo->prepare("SELECT * FROM user WHERE ID = ?");
$stmt->execute([$id]);
$row = $stmt->fetch();
此外,在更新查询中,您使用的预处理语句是错误的

这就是你应该如何使用它们

<?php

if (isset($_POST["update"])) {
    $pdo = new PDO('mysql:host=localhost;dbname=user', 'root', '');
    if (!isset($name)) {
        $id = $_POST['ID'];
        $Vorname = $_POST['Vorname'];
        $Nachname = $_POST['Nachname'];
        $Postleitzahl = $_POST['Postleitzahl'];
        $Email = $_POST['Email'];
        $Menge = $_POST['Menge'];
        $Ratenzahlung = $_POST['Ratenzahlung'];
    }


    $stmt = $pdo->prepare("UPDATE user SET Vorname = ?, Nachname = ?, Postleitzahl = ?, Email = ?, Menge = ?, Ratenzahlung = ?  WHERE ID = ?");
    $stmt->execute([$Vorname,$Nachname,$Postleitzahl,$Email,$Menge,$Ratenzahlung,$id]);
    echo "Aktualisieren erfolgreich.";
    require_once("showv2.php");
}

非常感谢!所以整个过程似乎都很有效,但我想你还不太明白我需要做什么,好吧,我会解释,所以我应该能够显示所有用户,然后在所有姓名、地址等旁边应该有一个编辑按钮,如果我尝试你的解决方案,它会直接进入我可以编辑这些内容的网站,如果我在ill get Errors中输入了什么,我需要注意的是,我的整个程序以前都工作过,直到我用css编辑了它,我用css中的下拉菜单编辑了主页,之后它就不工作了,我试图撤销它,但之前我做了太多的步骤,所以我不知道出了什么问题,但我期待着解决它!您得到的错误已通过以下方式解决。。这与css没有任何关系,而且你也有很多问题!所以整个过程似乎都很有效,但我想你还不太明白我需要做什么,好吧,我会解释,所以我应该能够显示所有用户,然后在所有姓名、地址等旁边应该有一个编辑按钮,如果我尝试你的解决方案,它会直接进入我可以编辑这些内容的网站,如果我在ill get Errors中输入了什么,我需要注意的是,我的整个程序以前都工作过,直到我用css编辑了它,我用css中的下拉菜单编辑了主页,之后它就不工作了,我试图撤销它,但之前我做了太多的步骤,所以我不知道出了什么问题,但我期待着解决它!您得到的错误已通过以下方式解决。。这与css无关,您可以继续