sub completecheckout {
$cryptedcard = md5_hex($cardnum . $salt);
$grabcart = qq~select pid from cart where uid='$cookievalue'~;
$dbh = DBI->connect($connectionInfo, $user, $passwd);
$sth = $dbh->prepare($grabcart);
$sth->execute();
while (@row = $sth->fetchrow_array()) {
$insert = qq~insert transaction (uid, pid, cctype, ccnum)
values ('$cookievalue', '$row[0]', '$cardtype',
'$cryptedcard')~;
$dbh = DBI->connect($connectionInfo, $user, $passwd);
$sth = $dbh->prepare($insert);
$sth->execute();
}
$select = qq~select * from registered where id in
(select uid from transaction
where uid='$cookievalue')~;
$dbh = DBI->connect($connectionInfo,$user,$passwd);
$sth = $dbh->prepare($select);
$sth->execute();
@userinfo = $sth->fetchrow_array();
print header;
print qq~<html><head><title>YAY</title></head><body><p>CHECK MYSQL<p><p>@row</p></body></html>~;
}
テーブルカートを解析して、ユーザーが関連するすべてのアイテムをトランザクションテーブルに挿入しようとしています。最終的なチェックアウトボタン。上記のコードは、最後の行をトランザクションテーブルに挿入するだけです。
これは、複数回挿入するコードですが、$ productは別の時間に空であるため動作しません。
これはどうして起こるか説明できますか?私はデータベースにリンクされたテーブルを作成するためにスクリプトを通してfetchrow_arrayを使ってwhileループを使用してきました。
ここから始めます。あなたはループの本体でステートメントハンドル( '$ sth')を壊しています。 –
あなたは精緻化できますか?どのように私はループ内のsthを持っていないクエリを実行することができますかわからない。 –
精巧...確かに。あなたは 'while(@row = $ sth-> fetchrow_array()){...}'を持っています。ループの中で '$ sth'を修正してループ条件を変更するとどうなると思いますか? –