する質問をすることでしか得られない、回答やアドバイスがある。62たびたびお世話になっています。身内の拠点間のやりとりで、ショッピングカートの機能を使って、商品のやりとりを行おうとしています。この機能の最後と思われる、販売と、販売の詳細にデータを書きこむ部分で長い間つまづいています。attribute.このエラーが出てしまいます。ネットで自分で調べれる範囲では、解決しませんでした。「気づけばプロ並みPHPショッピングカート作りにチャレンジ」という本の中のコードを参考に拡張?して作っています。この書籍のコードはすべて一度作り終えていまして、この書籍のコードでは実行してもエラーはでません。エラーがでない書籍のコードと、今回のコードの違いを長い間探していますが、LOCKテーブルのあたりの記述や、構造はほとんど同じと思います。$rec=$stmt->fetch(PDO::FETCH_ASSOC);などの記述も同じです。utf8');のような記載があったので、そもそも大きく違うのかもしれません。とりとめもないですが、何かヒントをいただければと思います。(実際には、このテーブルの書き込み操作が終われば、最後にメールを送る部分のコードがあるのですが、検証の為削除しています。WRITE';$stmt=$dbh->prepare($sql);$stmt->execute();ここをコメントアウトしていない時は上記の長文のエラーになります。);try{$post=h($_POST)//$sales_nameは注文した人の名前を入力しています。$sales_name=$post['sales_name'];//注文時点の消費税を念の為書き込んでいます。消費税のテーブルから期間で取得しています。$men_id=$_SESSION['men_id'];$men_no=$_SESSION['men_no'];$men_name_disp=$_SESSION['men_name_disp'];$men_grant=$_SESSION['men_grant'];$men_key=$_SESSION['men_key'];//サブキーがある場合。$men_key=$_SESSION['subkey'];}//店舗アカウントで注文する場合と、店舗を統括している人が店舗画面から注文する場合を想定しています。'ご注文ありがとうございました。'に、下記のメールを送りましたのでご確認ください。'商品は以下の住所に発送させていただきます。$honbun='';$honbun.=$sales_name."様\n\nこのたびはご注文ありがとうございました。//セッションの中身に一致する商品情報を取り出して、本文に追加。メールじゃないので改行はされない。$stmt=$dbh->prepare($sql);$stmt->bindValue(':sales_men_key',$men_key,PDO::PARAM_STR);$stmt->bindValue(':sales_name',$sales_name,PDO::PARAM_STR);$stmt->execute();//上の注文テーブルで書き込まれたキーを取り出す。'ただいま障害により大変ご迷惑をおかけしております。exit();}?>attachmentクリップ0気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。質問の評価を上げたことを取り消します低評価-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。プリペアド・ステートメントとしてサポートされていないためです。構文が記載されていないことからも、それが分かります。代わりにトランザクションを使用するのが良いでしょう。'ただいま障害により大変ご迷惑をおかけしております。取得・更新対象のレコードだけでなく、テーブル全体をアクセス不可能にしてしまう。処理の途中にエラーが発生した際に、ロールバックできないといったデメリットがあります。「メンテナンスのためにテーブル全体をロックしたい」といった特別な動機がない限り、使用する必要はありません。最後に、この書籍のコードはすべて一度作り終えていましてこれは素晴らしいことです。「プログラミングを習得したい」という情熱が伺えます。質問欄にご提示のコードや以下の徳丸氏のブログを読む限り、http://hemipteron26.rssing.com/chan-13974855/all_p5.html該当の書籍は「とにかく1つ、動くアプリケーションを作れるようになる」ことに主眼を置いており、セキュリティをはじめ、いわゆる「品質の高いコード」の書き方については目をつぶっている部分が多々あるように見受けます。この本だけで満足せず、たゆまず勉強を続けられることをお勧めします。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。10:22ご回答ありがとうございます!そもそもサポートされていないとは、まったく思いもしませんでした。今日はパソコンに触れないので、明日さっそくとりかかりたいと思います。理解不足の点が多いため、ご提示いただいたリンク先や、言葉について勉強したいと思います。ありがたいお言葉にも大変励まされます。モチベーション高く勉強していきたいと思います。そもそもサポートされていないとは、まったく思いもしませんでした。今日はパソコンに触れないので、明日さっそくとりかかりたいと思います。理解不足の点が多いため、ご提示いただいたリンク先や、言葉について勉強したいと思います。ありがたいお言葉にも大変励まされます。モチベーション高く勉強していきたいと思います。11:08ご提示いただいたブログのリンク先から、書籍のセキュリティ面での修正点などの副読本がダウンロードできました。このようなきっかけを与えていただき、大変ありがたく思います。ご提示いただいたブログのリンク先から、書籍のセキュリティ面での修正点などの副読本がダウンロードできました。このようなきっかけを与えていただき、大変ありがたく思います。11:39bbキャンセル完了するlink0そもそもロックテーブルの意味をご存知でしょうか?他者によるテーブル全体を読み書き不能にするコードです。誰かがアクセス中なら待ちますけど、時間制限でエラーで返ってきてしまいます。そもそもロックしなくともinsertだけなら問題ないと思いますがね。必要なのはロックではなくてトランザクション処理の方かと思いますね。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。10:07ご回答ありがとうございます!販売詳細のテーブルに書き込む内容に、販売テーブルの番号が必要だったので、書籍のようにロックするのがベストと思っていました。タイミング的にかぶることはかなりなさそうなのでロックしないほうがいい気がしてきましたが、ロックする場合はどのようなことを併用した方がいいか気になります。販売詳細のテーブルに書き込む内容に、販売テーブルの番号が必要だったので、書籍のようにロックするのがベストと思っていました。タイミング的にかぶることはかなりなさそうなのでロックしないほうがいい気がしてきましたが、ロックする場合はどのようなことを併用した方がいいか気になります。10:15KiyoshiMotokiさんの回答で、必要なのはロックではなくトランザクション処理というそのものズバリのアドバイスの意味がわかりました。蛇足な質問をして申し訳ないです。KiyoshiMotokiさんの回答で、必要なのはロックではなくトランザクション処理というそのものズバリのアドバイスの意味がわかりました。蛇足な質問をして申し訳ないです。小計を合計する記述を教えてください。発生して困っています。頂いたご意見への回答は行っておりません。