我想从mySQL表中获取数据,并希望将每一行(我的查询得到的)插入到另一个表中。
使用以下代码我得到我的数据:
$cart = new Dbconn();
$query = new Dbconn();
if ($cart->pdo()) {
$cart->stmt("SELECT id, product FROM cart WHERE uid =:uid");
$cart->bindParam(':uid', Session::get('uid'));
$cart->exe();
}
获取数据后,我想插入它,使用while循环
while ($rowPay = $cart->fetch()) {
if ($query->pdo()) {
$query->stmt('INSERT INTO orders (products_id, order_id) VALUES(:uid, :products)');
$query->bindParam(':user_id', Session::get('uid'));
$query->bindParam(':products', $rowPay['product']);
$query->exe();
}
}
他获得所有数据但只插入第一个条目。我的错误在哪里?
问候
答案 0 :(得分:0)
如果仅插入第一个条目,则尝试插入的参数存在问题。 您可能尝试使用相同的主键插入多行。 我需要知道每个表中的主键位置,以便为您提供更多帮助。
答案 1 :(得分:0)
$ payCart-> fetch()获取单行,$ payCart-> fetchAll()获取所有行。
试试这个
while ($rowPay = $payCart->fetchAll(PDO::FETCH_ASSOC)) {
if ($query->pdo()) {
$query->stmt('INSERT INTO orders'
.'(products_id, order_id)'
.'VALUES(:uid, :products)');
$query->bindParam(':user_id', Session::get('uid'));
$query->bindParam(':products', $rowPay['product']);
$query->exe();}}