PHPでMySql
PHP(4.x)からMySqlの使い方メモ。
[php]
$mysql = mysql_connect('host', 'user', 'pass') or die;
mysql_select_db('dbname') or die;
$res = mysql_query("SELECT VERSION()") or die;
$row = mysql_fetch_row($res) or die;
mysql_free_result($res);
ehoc $row[0];
$mysql.close();
[/php]
RubyでMySql
RubyからMySqlの使い方メモ。
[ruby]
require "mysql"
:
begin
mysql = Mysql.new('host', 'user', 'pass', 'db')
stmt = mysql.prepare("INSERT INTO Test (COL1, COL2, COL3) VALUES (?, ?, ?)")
stmt.execute(123, "てすと", Time.now)
stmt.prepare("SELECT * FROM Test")
stmt.execute
puts stmt.fetch
stmt.close
rescue MysqlError => e
puts "Error: #{e.message}"
ensure
mysql.close if !mysql.nil?
end
[/ruby]
MySQL Binary演算子
しゃるる丼定食において2バイト文字比較の動作がどうも怪しいということで少し調査をしてみました。
どうやらBinary演算子とやらをSELECT文で指定すれば文字比較が正確にされるとか。本当はテーブルスキーマの段階でBinary演算子を指定したほうがいいのかな?
こんな感じ。
[sql]
SELECT * FROM TAB1 WHERE COL1 LIKE '%TEST%';
↓
SELECT * FROM TAB1 WHERE COL1 LIKE BINARY '%TEST%';
[/sql]
あんまり良く分かっていないので正しいのかどうかは不明w まぁ懸念していた検索性能は改善されて問題はなさそうです。
