1

以下のコードは、回避できない問題を再現します。コードのどこに問題があるのか​​ わかりませんか?MySQLの設定?それともどこか?正しい方向へのポインタは高く評価されます。

<html>
<head></head>
<body>
<?php 
$db_name = "UserDB";
$open = mysql_connect("localhost", "root", "");
if($open)
    echo "1. Successfully connected to MySQL";
echo "</br>";
$db = mysql_select_db($db_name, $open);
if($db)
    echo "2. Successfully selected {$db_name} database";
echo "</br>";
$sql = "SHOW TABLES FROM `{$db_name}`";
$result = mysql_query($sql);
$print = mysql_num_rows($result);
if($result)
    echo "3. {$print} tables found in {$db_name}";
?> 
</body>
</html>

Here's my output:
1. Successfully connected to MySQL
2. Successfully selected UserDB database
3. 0 tables found in UserDB

問題は、出力の 3 行目にあります。「0」テーブルと表示されていますが、これは正しくありません。選択した DB に「3」の InnoDB テーブルを作成しました。phpmyadmin で同じ SHOW TABLES クエリをコピーして貼り付けて実行すると、完全に実行されます。

ここで何が起こっているのか分かりますか??

4

1 に答える 1

0

ラッパー関数mysql_list_tablesを使用してみてください。mysql_list_tables を使用することはできましたが、いくつかの奇妙なパーミッション定義のために SHOW TABLES を使用することが一度不可能であることがわかりました。

于 2012-09-22T13:56:16.353 に答える