Php 我有一个查询,使用数组和for循环将值插入MySQL数据库
我有一个查询,使用数组和for循环将值插入MySQL数据库。但当我提交表单MySQL数据库时,显示了双条目。第一条记录为空,第二条记录有值?为什么MySQL数据库显示第一条记录为空条目。我不知道这背后的原因是什么 这里是我的功能代码Php 我有一个查询,使用数组和for循环将值插入MySQL数据库,php,mysql,database,Php,Mysql,Database,我有一个查询,使用数组和for循环将值插入MySQL数据库。但当我提交表单MySQL数据库时,显示了双条目。第一条记录为空,第二条记录有值?为什么MySQL数据库显示第一条记录为空条目。我不知道这背后的原因是什么 这里是我的功能代码 <?php if(isset($_REQUEST['order'])) { $count=1; $count++; $total=$_POST['total']; for ($i=1; $i<=$count; $i++){ $querypro
<?php
if(isset($_REQUEST['order']))
{
$count=1;
$count++;
$total=$_POST['total'];
for ($i=1; $i<=$count; $i++){
$queryproduct=mysql_query("INSERT INTO shoppingcart VALUES ('','','','$uid','$email','".$_POST['product'][$i]."','".$_POST['userfile_name'] [$i]."','".$_POST['price'][$i]."','".$_POST['qty'][$i]."','".$_POST['amt'][$i]."','$total')") or die("Order Query Problem");
}
}
?>
尝试从0开始循环,因为$\u POST[“pid”]变量从0开始编号,如第二个(工作)示例所示:
对于($i=0;$i我将首先忽略此代码的安全性问题,我们可以稍后再回到这一部分。让我们首先处理我认为正确的问题
第一条记录是空的,第二条记录有值?为什么MySQL数据库显示第一条记录为空条目。我不知道这背后的原因是什么
这是怎么回事?您将$count
设置为1
,然后在第二行将其立即增加12
。您为什么要这样做?为什么不首先将其设置为2
我敢打赌,第一条记录为空的问题是从这些代码行开始的
$total = $_POST['total'];
这只在查询中使用一次,那么为什么要将它分配给另一个变量呢?这只是在浪费内存
从您的代码的第一个示例中,我想说这将是您可以从中获得的最佳执行(同样,不要谈论安全性)
您的代码易受攻击。请避免使用带日期的mysql\u*
函数。将它们用于新代码是非常困难的。可以使用更现代的替代方法,并且可以更好地维护。相反,建议使用via。@MattBall mysql\u query不建议使用??为什么要将$count=1设置为1,然后将其增加1?另外,请尝试不插入“”状态ment插入表(col1,col2,…)值(val1,val2,…)
@Voitcus我需要在不同的页面中使用它们。这就是why@FarhanDharsi正确,mysql\u query()
不推荐使用。对不起,兄弟,下次我将使用matt ball方法
$count=1;
$count++;
$total = $_POST['total'];
<?php
if(isset($_REQUEST['order']))
{
for ($i = 1, $count = 0; $i <= $count; ++$i)
{
$queryproduct = mysql_query
(
"INSERT INTO shoppingcart VALUES
(
'',
'',
'',
'$uid',
'$email',
'{$_POST['product'][$i]}',
'{$_POST['userfile_name'][$i]}',
'{$_POST['price'][$i]}',
'{$_POST['qty'][$i]}',
'{$_POST['amt'][$i]}',
'{$_POST['total']}'
);"
)
or die("Order Query Problem");
}
}
?>
<?php
if(isset($_REQUEST['order']))
{
for($i = 0, $p = count($_POST['product']); $i < $p; ++$i)
{
$queryproduct = mysql_query
(
"INSERT INTO shoppingcart VALUES
(
'',
'',
'{$_POST['pid'][$i]}',
'$uid',
'$email',
'{$_POST['product'][$i]}',
'{$_POST['userfile_name'][$i]}',
'{$_POST['price'][$i]}',
'{$_POST['qty'][$i]}',
'{$_POST['amt'][$i]}',
'{$_POST['total']}'
);"
)
or die("Order Query Problem");
}
}
?>
<?php
if(isset($_REQUEST['order']))
{
$stmt = $dbh->prepare("INSERT INTO shoppingcart VALUES ('', '', ?, ?, ?, ?, ?, ?, ?, ?, ?);");
$stmt->bindParam(1, $pid);
$stmt->bindParam(2, $uid);
$stmt->bindParam(3, $email);
$stmt->bindParam(4, $product);
$stmt->bindParam(5, $name);
$stmt->bindParam(6, $price);
$stmt->bindParam(7, $qty);
$stmt->bindParam(8, $amt);
$stmt->bindParam(9, $total);
for($i = 0, $p = count($_POST['product']); $i < $p; ++$i)
{
$pid = $_POST['pid'][$i]);
$product = $_POST['product'][$i]);
$name = $_POST['userfile_name'][$i]);
$price = $_POST['price'][$i]);
$qty = $_POST['qty'][$i]);
$amt = $_POST['amt'][$i]);
$total = $_POST['total'];
}
$stmt->execute();
}
?>