http://jp2.php.net/manual/ja/function.mysql-query.php
の mysql_query()関数のヘルプを見直ししたら
次のように書いてあった
<<< 引用開始
----------------------------------------------
mysql_query
(PHP 4, PHP 5)
mysql_query MySQL クエリを送信する
代替策について
この拡張モジュールを使うことはおすすめできません。
MySQLi あるいは PDO_MySQL を使うべきです。
詳細な情報は MySQL: API の選択 や それに関連する FAQ を参照ください。
この関数の代替として、これらが使えます。
mysqli_query()
PDO::query()
----------------------------------------------
>>> 引用終了
で、サーバー会社(hostmonster, USA)に問い合わせしたら
mysql_query の代りに mysqli_query にするほうが好ましいと
英語で回答が来た。
で、自分のアプリがどんな MySQLライブラリ関数を利用しているか
まず調査することにした。
SSHで接続できるているので、次の(へたくそな)コマンドの反復で
調査ができた。
grep mysql_ *.php */*.php
の結果で出てきた関数名(たとえば mysql_query)を
sed 's/mysql_query//'
で、隠してしまい、さらに grep mysql_ で調べて
何も無くなるまで繰り返す。
最初は、
grep mysql_ *.php */*.php
次は、
grep mysql_ *.php */*.php | sed 's/mysql_real_escape_string//' | grep mysql_
その次は、
...
結果、次のようなべたでへたくそなコマンドになった。
grep mysql_ *.php */*.php
| sed 's/mysql_real_escape_string//'
| sed 's/mysql_fetch_assoc//'
| sed 's/mysql_query//'
| sed 's/mysql_error//'
| sed 's/mysql_num_rows//'
| sed 's/mysql_connect//'
| sed 's/mysql_close//'
| sed 's/mysql_select_db//'
| sed 's/mysql_insert_id//'
| sed 's/mysql_data_seek//'
| sed 's/mysql_affected_rows//g'
| sed 's/mysql_real_escape_string//g'
| sed 's/mysql_result//g'
| sed 's/mysql_free_result//'
| grep mysql_
つまり、ここに出てきた mysql_ の関数を利用しているのである。
次の記事は、これらをどの新しい mysqli_ の関数にするかを調査することにします。
No comments:
Post a Comment