Php 将一个表中的详细信息存储到另一个表中

Php 将一个表中的详细信息存储到另一个表中,php,mysql,Php,Mysql,单击“添加”按钮时,我正在尝试将项目添加到数据库中的“我的篮子”表中。这是我的表格和按钮: <div id="products-container"> <?php $pdo = new PDO('mysql:host=localhost;dbname=','name','password'); $result = $pdo->query('SELECT file_id, product

单击“添加”按钮时,我正在尝试将项目添加到数据库中的“我的篮子”表中。这是我的表格和按钮:

<div id="products-container">
            <?php
                $pdo = new PDO('mysql:host=localhost;dbname=','name','password');
                $result = $pdo->query('SELECT file_id, productName, price, stock FROM files');
                foreach($result as $row){
                    echo "<form method='post' action='addbasket.php' id='shop'>";
                    echo "<img id='product' src=\"mfile.php?id={$row['file_id']}\">";
                    echo '<p>' . $row['productName'] . '</p>';
                    echo '<p>' . "£" . $row['price'] . '</p>';
                    echo '<p>' . "Stock Level: " . $row['stock'] . '</p>';
                    echo '<input type="submit" name="add" value="Add">';
                    echo "</form>";
                }
            ?>
        </div>

然后,我的php中有一个单独的文件,用于将项目添加到该表中,因此我尝试将会话名称、fileid、productname和price存储在basket表中(fileid、productname和price来自数据库中的files表)目前,它只是重定向到一个空白的addbasket.php页面,没有向数据库添加任何内容。有人能看出我哪里出错了吗

<?php

function newAccount(){
    $pdo=new PDO('mysql:host=localhost;dbname=', 'name', 'password');

    $name=$_SESSION['userName'];
    $fileid=$_GET['file_id'];
    $productname=$_GET['productName'];
    $price=$_GET['price'];


$st = $pdo->prepare('INSERT INTO basket (Username,file_id,productName,price) VALUES (:userName,:file_id,:productName,:price)');
    if(!isset($error)){
        //no error
        $sthandler = $pdo->prepare("SELECT file_id FROM files WHERE file_id = :file_id");
        $sthandler->bindParam(':file_id', $fileid);
        $sthandler->execute();

if($sthandler->rowCount() > 0){
    die(header("Location: mproducts.php"));

}else {

$st->execute(array('Username' => $name, 'file_id'=>$fileid, 'productName'=>$productname, 'price'=> $price));
    header("Location: mproducts.php");

    }
    }


if(isset($_POST['add'])){
    newAccount();
}
}

?> 


调试的第一步是添加echo语句,以便查看创建的查询。这将很容易地告诉您查询中是否有问题。正如@MarshallTigerus所说的,请务必打印SQL语句以帮助调试。但是,快速浏览一下,您的
'userName'
值似乎绑定不正确。一个是
'userName'
,另一个是
'userName'
首先查看表单,1)您使用了
post
方法,但您正在使用
$\u GET
superglobal捕获值。2) 没有任何带有文件id、产品名称或价格的
字段,也没有将这些值附加到
操作
属性中。3) …它只是重定向到一个空白的addbasket.php,表示有东西坏了。添加这些行
错误报告(E_ALL);ini设置(“显示错误”,1),查看是否产生任何错误。调试的第一步是添加echo语句,以便查看创建的查询。这将很容易地告诉您查询中是否有问题。正如@MarshallTigerus所说的,请务必打印SQL语句以帮助调试。但是,快速浏览一下,您的
'userName'
值似乎绑定不正确。一个是
'userName'
,另一个是
'userName'
首先查看表单,1)您使用了
post
方法,但您正在使用
$\u GET
superglobal捕获值。2) 没有任何带有文件id、产品名称或价格的
字段,也没有将这些值附加到
操作
属性中。3) …它只是重定向到一个空白的addbasket.php,表示有东西坏了。添加这些行
错误报告(E_ALL);ini设置(“显示错误”,1),查看是否产生任何错误。