【PHP】mysqliのプリペアドステートメント記述(SQLインジェクション対策)

2023-06-03

PHPでのSQLインジェクション対策ならプリペアドステートメントが有名です。 (プリペアド・ステートメントは静的プレースホルダ、バインド機構と呼ぶ場合もあるようです) PDO派ではなく、mysqli派の方へ向けたプリペアドステートメントの記述方法の紹介です。 コードを見ればなんとなく分かると思います。 prepare関数にて「?」を仕掛けた数だけ、bind_param関数の引数の数に関係します。 <削除 DELETE> phpStart $id = htmlspecialchars($_POST["id"]); $stmt = $mysqli->prepare("D...

JavaScript(jquery)でやっかいなundefined値のif文による空チェック判定【即決】

2018-10-21

jqueryでラジオボタンの値を取得した際にalertで値を確認すると「undefined」と表示され、 if文による空チェックがうまくいかなかったが、調べて解決したので記録のために残しておきます。 htmlStart var hensu = $("input[name='hensu']:checked").val(); //ラジオボタンの値 if(hensu == ""){} //この記述では空のチェックができません htmlEnd いくつかやり方があるようですが、この方法が一番無難だとされているようです。 htmlStart var hensu = $("input[nam...

mysqliからPDOに記述を変えよう!接続・取得・追加・更新・削除の基本コード

2018-10-05

データベース周りは未だに「mysqli派」ですが、ようやくPDOを使ってみようと決断。 PHP5.1以降に標準で利用できるようになったようで、ライブラリの読み込みは必要がない。 基本となる、接続・取得・追加・更新・削除の一連を動作確認しました。 使い勝手は良さそうで、PEAR::DBはもう完全にオワコンであることがはっきりしました。 ※xamppでは下記コードでちゃんと動作しました。 phpStart //mysqlアカウント $DB['host'] = 'localhost'; $DB['user'] = 'user'; $DB['pass'] = 'pass'...

自作PHP派が既に時代遅れのPEAR::DBを試用で使ってみたので基本コード紹介|接続・取得・追加・更新・削除

2018-10-03

PHPのキャリアは10年くらいで、フレームワークは一切使用せず、独自PHPで作成をする派です。 誰よりもあらゆるポータルサイトを早く作る自信があり、開発コストもかなり下げられる我が誇りの技術。 かなりの大掛かりで複数人での開発ならフレームワークを覚える必要があるのだろうが、 基本一人で全てこなす案件しかしないので、覚える必要がない。個人的にはスピード第一。 データベース周りは「mysqli派」です。というのも大抵のレンタルサーバーはmysqlだから他のを使う機会がありませんでした。 そんな私が、重い腰をあげてPEARライブラリのPEAR::DBを試してみた。 DBの基本であ...

完全な空チェック ~ 確実な0(ゼロ)判定、null判定をする方法

2014-08-14

phpStart $num = 0; if($num){ 処理されない... } phpEnd 上記の分岐分は処理されないコードの一例。「0」はfalseと判定されるのがPHPの仕様である。 しかし、「0」はtureと判定し、変数が空の場合のみfalseと判定したい時が多々出てくる。 そこで、よく出てくるなら関数化をしておくのがオススメ。 phpStart function karaChk($str){ if(!is_null($str) && $str !== ""){ $flag = true; }else{ $flag = false; ...

cookie(クッキー)操作の便利なユーザー定義関数

2012-09-18

フォームやカートなどで重宝するcookie(クッキー)の操作を簡単にする定義関数。クッキーを配列で使用することでシンプルな組み方が実現されてます。この関数があればクッキー操作が格段にラクになるのでオススメです。 phpStart define(_TIME_OUT_,time() + 30 * 86400); //一ヶ月保持 function makeCookie($array,$cookie_name) { foreach ($array as $text => $value) { setcookie($cookie_name."[$text]",$value,_TIME_...

この記事がお役に立てましたら是非シェアのご協力お願いします。