SQLの実行 PDOオブジェクト、PDO Statementオブジェクト

PDOオブジェクト データベースに接続するためのオブジェクトであり、query関数を使うことでクエリを実行し、PDO Statementオブジェクトを取得できる。 プレースホルダーを使用したクエリを実行するには、PDOオブジェクトを使用してPDOStatementオブジェクトを取得し、その後、それを使用してクエリを実行する。 以下例 PDO Statementオブジェクト PHPからSQLを実行す…Continue reading SQLの実行 PDOオブジェクト、PDO Statementオブジェクト

SQL nullと文字列の比較

nullとの比較 SQLであるカラムと文字列を比較したとき、そのカラムがNullだと条件に当てはまらなくなる。 以上のような場合、CLMがNullだと当てはまらないのは当然だが、 以下はどうだろう? ‘a’ という文字列以外のなので、CLMがNullの行も取得できそうな気がする。 しかし、取得できない。 CLMがNullの場合、比較されないので、行は取得できない。 ISNU…Continue reading SQL nullと文字列の比較

SQL Server サブクエリを使ったInsert

カラムの数は合わせる必要がある。 テーブル作成時にInsert 番号を順番に振ってアップデート すでにあるテーブルのデータのとあるカラムに上から順番に番号を振りたいとき まず順番に番号を振ったテーブルを作る このとき、アップデートしたいテーブルの何か一意のデータが必要。 方法はいろいろあるが、numberカラムにidentityをつける。 テーブルを右クリック、IDENTITY設定を「はい」にする…Continue reading SQL Server サブクエリを使ったInsert

SQLでの日付比較での注意点 うまく条件分岐できない、データが取れない

カラムの型を確認する SQLで日付比較をするときカラムがDate型でも、’2023/01/01’ というような文字列で渡していないだろうか? となるようなSQLだとうまく条件に当てはまらない日付がでることもある。 ほとんどのDBでは、カラムに対して、値が自動的に型変換される。 この場合、渡した’2023/01/01’が日付型に変換されるだろう。 0が…Continue reading SQLでの日付比較での注意点 うまく条件分岐できない、データが取れない

wordpress ドメイン移行 簡単な方法 mixhostにて

ドメインを変更するとき 新規ドメインにてwordpressをインストールする オリジナルのテーマを自分で作成していたので、テーマファイルはもともとある。 ない場合は、テーマファイルをコピーすればいい。 wp-content/themes/テーマフォルダ 移行先にてテーマをインストール これは、テーマフォルダを同じところにおけばいい。 記事やタグはエクスポートして、インポート データベースの内容をエ…Continue reading wordpress ドメイン移行 簡単な方法 mixhostにて

sql 他のテーブルを参照したいとき テーブル結合するか、しないか 

sqlでの条件指定や、updateなどで、他のテーブルを参照したいとき、 書き方としては2つある。 ・テーブルを JOINさせる方法 SELECT *  テーブルA INNER JOIN テーブルB ON テーブルA.カラムC = テーブルB.カラムD WHERE テーブルB.カラムE= 値 このSQLの内容としては、 WHERE: この条件に当てはまるカラムを選択。 INNNER JOIN: テ…Continue reading 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 エラーが出た時

SQLインジェクション防止 PHPのプレースホルダー プリペアードステートメント

SQL文を打つとき、 SQL文のどこかに、入力値を変数として、入れているなら、 例えば、post送信で、テーブル名を取得している場合など、 $table-name = $_POST[$table]; $sql = “SELECT * FROM $table-name”; 入力値に、予期せぬSQL文などが入った場合、それが実行され、 最悪の場合、カラムやテーブルのデータが消え…Continue reading SQLインジェクション防止 PHPのプレースホルダー プリペアードステートメント