質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

299閲覧

プリペアドステートメントを削除の意味はなんですか?

OHASI

総合スコア96

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2022/05/19 15:15

$stmt = null;のようにプリペアドステートメントを削除するとはどういう意味なのですか?また、削除は必ずすべきことなのですか?

さらに$dbh = null;のようにデータベースから切断は必ずすべきことですか?

ご教授よろしくお願いします。

php

1function add_review($product_id, $add_review, $dbh) { 2 3 // ユーザーidを代入 4 $user_id = $_SESSION['user_id']; 5 6 $sql = "INSERT INTO 7 reviews( 8 review_comment, 9 review_date, 10 review_product_id, 11 review_user_id 12 ) 13 VALUES ( 14 :review_comment, 15 :review_date, 16 :review_product_id, 17 :review_user_id 18 )"; 19 20 $stmt = $dbh->prepare($sql); 21 $stmt->bindValue(':review_comment', $add_review); 22 $stmt->bindValue(':review_date', date('Y-m-d H:i:s')); 23 $stmt->bindValue(':review_product_id', $product_id); 24 $stmt->bindValue(':review_user_id', $user_id); 25 $stmt->execute(); 26 27 // プリペアドステートメントを削除 28 $stmt = null;             ←これについて 29 30 // 変数にリダイレクト先URLを格納する 31 $detail = $_SESSION['detail']; 32 $url = "http://localhost/bulletin/public/detail.php?id=" . $detail; 33 34 header("Location:" . $url ); 35 exit(); 36 37}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

初期化です。nullを代入することで持っているオブジェクトを無効にする役割をしています。
早めにメモリ開放して次の処理のためにあける意味もあるかとは思いますが、
本当に使わなくなってメモリ開放したいならunset()のほうが適当です。

さらに$dbh = null;のようにデータベースから切断は必ずすべきことですか?

実装用途に応じて。
繰り返し処理やトランザクション内であればいちいち繋いで閉じてというのは無駄なので、
基本は「1スクリプト内で使用が終わったら」ですね。
ユーザログイン機能がある場合は、ログイン時にセッションに接続を保持しておいてログアウト時に破棄するようなことも行われることもあります(私見)

投稿2022/05/19 22:30

編集2022/05/19 22:33
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問