IT業界の技術をメモ・情報公開できる
autocompleteの注意点
chromeでautocompleteを使用する場合はPCでは効くが、スマホだと効かない場合がある。 autocomplete="off"にしていても候補が出てしまう。
!=と<>の違い
!= 意味:等しくない 型:しない <> 意味:等しくない 型:しない !== 意味:厳密に等しくない 型:する 結論 型比較も含めて「!=」の方を使用した方がいい
phpでsqlのupdate文が更新されたかの判定
$stmt_update = $dbh->query($sql_update); if ($stmt_update && $stmt_update->rowCount() > 0) { // 更新された時の処理 } $stmt_update は PDOStatement オブジェクト 成功時はtrue扱い 失敗時はfalse扱い rowCount() は 影響を受けた行数を返すメソッド
インサートした後のidを取得
MySQL SELECT LAST_INSERT_ID(); PHP(mysqli) $mysqli->query($sql); $insert_id = $mysqli->insert_id; PHP(PDO) $pdo->exec($sql); $insert_id = $pdo->lastInsertId();
sqlの日付計算
SELECT DATE_FORMAT(DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH), '%Y-%m-01'); -- 前月の月初 SELECT LAST_DAY(DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH)); -- 前月の月末 SELECT DATE_FORMAT(CURRENT_DATE, '%Y-%m-01'); -- 当月の月初 SELECT DATE_SUB(CURRENT_DATE, INTERVAL 2 DAY); -- おととい SELECT DATE_SUB(CURRENT_DAT
sqlで前日のデータ絞り込み
前日 00:00:00 ~ 23:59:59のデータ datetimecolum >= DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND datetimecolum < CURDATE(); 型が文字列の場合 datetimecolum >= DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '%Y%m%d000000') AND datetimecolum <= DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 DAY), '%Y%m%d235959');
jqueryで表示の判定
・一番よく使う(おすすめ) if ($('.hopecontents_pt1').is(':visible')) { // 表示されている } ・display だけを見たい場合 if ($('.hopecontents_pt1').css('display') !== 'none') { // display:none ではない } ・jQuery流・正確寄り(:visible の逆) if ($('.hopecontents_pt1').is(':hidden')) { // 非表示 }
sqlのjoin
CROSS JOIN(交差結合) 二つのテーブルのすべてのレコードの列情報を結合する INNER JOIN(内部結合) 結合条件に一致するレコードの列情報を結合し、共通するレコードのみを出力する OUTER JOIN(外部結合) 結合条件に一致するレコードの列情報を結合し、基準としたテーブルのレコードはすべて出力する。 LEFT OUTER JOIN FROM句で指定したテーブルを基準としてOUTER JOINを実行する。 RIGHT OUTER JOIN JOIN句で指定したテーブルを基準んとしてOUTER JOINを実行する。
strpos系の注意する点
1)strpos($ml["mlBody"], "対象文字列") != false ・ゆるい比較(型を無視) ・0 == false とみなされる 対象文字列の位置 | 位置 | 戻り値 | 判定 | | 先頭 | 0 | false | | 途中 | 5 | true | | なし | false | false | 2)strpos($ml["mlBody"], "対象文字列") !== false ・厳密比較(型も値も見る) ・0 !== false → true 対象文字列の位置 | 位置 | 戻り値 | 判定 |
sqlのOFFSETの注意
SQL文でOFFSETを使用するときは数値を必ず使用する 文字列は使用できないSQLインジェクション対策で囲む際は注意 OKの例) OFFSET 10 NGの例) OFFSET '10'