MySQLが動かない(テーブルレコード全表示したい
初心者です。
いろいろ検索して改善していったつもりですが、なぜ動かないのかどうしてもわからないところがあったので質問させていただいてます。
/* サーバーへの接続 */
$link=mysql_connect($server,$user,$passwd);
/* データベース内のテーブルの名前を$tablesに配列で格納 */
$STS = "SHOW TABLE STATUS";
$mytables = mysql_query($STS);
while($r = mysql_fetch_array($mytables, MYSQL_ASSOC)){
$tables[] = ($r["Name"]."<br>\n");
}
/* 全テーブルのレコードを全てプリント */
foreach($tables as $value){
$results = mysql_query("select * from " . $value, $link);
while ($row = mysql_fetch_array($results, MYSQL_ASSOC)) {
print_r($row);
print("<br>\n");
}
}
mysql_close($link);
foreachの部分を
for($i = 0; $i < 2 /*$tables[$i] != 0*/; $i++){
$results = mysql_query("select * from " . $tables[$i], $link);
$row = mysql_fetch_array($results, MYSQL_ASSOC);
print_r($row);
}
でもやってみました。
これを利用して、何とか表形式でデータベースのテーブルのレコードをwebページに出力させようと思っています。
実行するとprint_r($row)の出力がでず、いろいろ試してみた結果、$resultsもしくは$rowに問題があることがわかりました。
var_dump($row); でNULLが出力されました。
var_dump($results); もやったのですが、うろ覚えなのでここには書きません。
$results = mysql_query("select * from gutaiteki_table", $link);
としたら動いたので、select * from の後に変数を続けているからだめなのかなと思いましたが、私にはどうにもしようがありません。
これを正常に動作させる方法、他にうまいやり方があればその方法を教えてほしいです。
(私はデバッグのやり方がわからないので、「改変してwebのページを更新する」というのを繰り返してプログラムを作成していますが、他に方法があればそれも併せてご意見ほしいです。これは余裕があったらで構いません。)
お礼
ありがとうございます。誰も答えてくれなかったので、すごい不安でした。。 試してみます。また結果報告します。 ありがとうございました。
補足
直りました。ありがとうございます。仰るとおり、 innodb_data_home_dirや、そのたログファイルの置き場所を設定するパラメータと、ログファイルのファイルサイズなどをいじったのが原因でした。 データは全く無傷で復旧しました。 本当にありがとうございました。