PDOの注意点
こんなSQLを作成しようと思って
SELECT * FROM table_name WHERE name LIKE '%hoge%'
こんな感じのコードを書いた。
<?php $db = new PDO($dsn, $user, $pass); $hoge = "hoge"; $sql = "SELECT * FROM table_name WHERE name LIKE '%?%'"; $stmt = $db->prepare($sql); $stmt->bindParam(1, $hoge);
ところが、これを実行しても結果セットが返ってこない。
調べてみると、「LIKEの'%'は変数の中にないといけない」そう。
そこで、取りあえず
$hoge = '%hoge%'; $sql = "SELECT * FROM table_name WHERE name LIKE ?";
として解決。
PDO、もっとちゃんと使えるようにならないとな〜(・x・ ).o0○
parse_ini_fileの第2引数
[hoge] name = "user" pass = "password" [fuga] url = "http://example.com" mail = someone@example.com
こんなiniファイルを作っても、
;; デフォルトはFALSEなのです $params = parse_ini_file('file.ini', TRUE);
としないと、多次元配列として読み込んでくれない。
ハマっちゃった…(・x・ ).o0○
GitでSourceForgeのSVNリポジトリを利用
まず、自分用の公開鍵を作った。
;; 鍵の種類はRSA $ ssh-keygen -t rsa -> パスフレーズ応答(2回)
で、~/.ssh/id_rsa.pubの中身をSourceForgeの自分のページにペタッとコピペ。
次に、以下を実行
;; SSH経由 $ git svn clone svn+ssh://account_name@svn.sourceforge.jp/svnroot/ path/to/project/
これでSourceFrogeのリポジトリと繋がった。
後は、普通にGitとして使えば良いみたい。
忘れそうなコマンドだけメモ。
;; git commitでは、ローカルリポジトリのみに ;; コミットされるので $ git svn dcommit ;; ローカルリポジトリを最新のものに更新 $ git svn rebase
さて、やりますぜよ〜(・x・ ).o0○
シェルスクリプトでの文字列比較
;; これはヨロシクない例 #!/bin/bash arg=$1 if [ $arg = "hoge" ]; then echo $arg fi
この場合、引数が指定されないと$argがNULLなので、こんなメッセージが出る。
unary operator expected
ので、""で囲む事によって比較する型が合わなくなる事を防ぐそうだ。
;; ""で変数を囲む事 #!/bin/bash arg=$1 if [ "${arg}" = "hoge" ]; then echo $arg fi
見事解決。
シェルスクリプトはファイル処理に強いらしい。そうなると文字列処理に強いと言われるPerlにも目が行くのが人の性(・x・ ).o0○