sqlでの条件指定や、updateなどで、他のテーブルを参照したいとき、 書き方としては2つある。 ・テーブルを JOINさせる方法 SELECT * テーブルA INNER JOIN テーブルB ON テーブルA.カラムC = テーブルB.カラムD WHERE テーブルB.カラムE= 値 このSQLの内容としては、 WHERE: この条件に当てはまるカラムを選択。 INNNER JOIN: テ…Continue reading sql 他のテーブルを参照したいとき テーブル結合するか、しないか
タグ: sql
An error occurred substituting the named parameters ; Mixed named and positional parameters in エラーが出た時
An error occurred substituting the named parameters PHPでSQL文を実行したときに、以上のようなエラーが出た。 こちらは、翻訳すると 名前付きパラメーターの置換中にエラーが発生しました とのこと。 Mixed named and positional parameters これも、パラメータの場所と名前が混在している。 みたいな感じ。 つまり、…Continue reading An error occurred substituting the named parameters ; Mixed named and positional parameters in エラーが出た時
データバインド bindValue bindParam
bindParam(param, var, type) 変数は、参照としてバインドされ、execute()が呼ばれた場合のみ、変換される。 param: ‘:name’ のように、プレースホルダーを記述 var: sqlステートメントにバインドする変数 type: PDO::PARAM_STR など、STRの部分は変数の型がはいる bindValue(p…Continue reading データバインド bindValue bindParam
SQLインジェクション防止 PHPのプレースホルダー プリペアードステートメント
SQL文を打つとき、 SQL文のどこかに、入力値を変数として、入れているなら、 例えば、post送信で、テーブル名を取得している場合など、 $table-name = $_POST[$table]; $sql = “SELECT * FROM $table-name”; 入力値に、予期せぬSQL文などが入った場合、それが実行され、 最悪の場合、カラムやテーブルのデータが消え…Continue reading SQLインジェクション防止 PHPのプレースホルダー プリペアードステートメント