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