2011年3月9日水曜日

PHP MySQLでウン十年ぶりのプログラミング

 かなり長い間触っていなかったので、基本的な書き方すら忘れていました。一番心配だったのがデータベースとの接続部分であります。私が使っているのはさくらのレンタルサーバーです。ここでMySQLと接続できるかどうかということが大問題であったわけであります。昨日の午前中はその調査に追われましたが、接続文字列を推測しながら試してみたら、奇跡的に1回のテストで成功しました。とにかくDBと繋がってくれさえすれば、後はなんとかなると思っていたので大満足であります。
 次にさくらレンタルサーバーについているphpMyAdminというツールを使ってhogehogeというテーブルを作成しまして、このテーブルを削除するという処理を書いてみました。
 後はなんとかなると思っていたのとは、逆でなかなか削除してくれません。以下のコードは成功したコードです。で、何が悪いのかわからなかったのでエラーコードを吐き出させるように書き直して実行させると、"No database selected"という文字列が出てきました。これでは何がなんだかさっぱりわかりません。そこでダメモトということで"No database selected"そのものをグーグルで検索してみましたら一発で原因がわかりました。ホントにグーグルには感謝感謝であります。ネットがこれほど発達してない以前でしたら、このエラーを解明するだけでまる1日は費やしていたのではないかと思います。
$str_sql = "DROP TABLE IF EXISTS hogehoge";これがエラーになっていた、で訂正したのが下です。
$str_sql = "DROP TABLE IF EXISTS test.hogehoge";
テーブル名hogehogeの前にデータベース名testをつけなければいけない見たいです。

以下のコードが昨日の収穫であります。

<?php
//テーブル削除
$hostname = "mysq3897.db.sakura.ne.jp";
$userid = "uron";
$passwd = "*******";

//データベース接続
if(!$con=mysql_connect($hostname,$userid,$passwd)){
print "データベースに接続できません". mysql_error() . "
\n";
} else {
print "データベースに接続しました
\n";
}

//テーブル削除
$str_sql = "DROP TABLE IF EXISTS test.hogehoge";
$result = mysql_query($str_sql, $con);

if( !$result ) {
print "エラー内容" . mysql_error() . "
\n";
} else {
print "mondaiテーブルを削除しました。
\n";
}

//データベースサーバへの接続の切断
mysql_close($con);

コメントを投稿