2011-06-16 29 views
1

有沒有人碰巧知道爲什麼這個查詢在phpMyAdmin中執行時給了我所需要的所有數據。查詢在phpMyAdmin中運行良好,但0結果在PHP本身...?

但是,當在PHP中以編程方式執行時,它返回0行。

謝謝!

SELECT `table_schema`, `table_name` 
    FROM `information_schema`.`TABLES` 
    WHERE `Engine`='MyISAM' 
    AND `TABLE_SCHEMA` !='information_schema' 
    AND `TABLE_SCHEMA` !='mysql'; 

更新:

這裏是問PHP代碼。

$query = "SELECT `table_schema`, `table_name` 
    FROM `information_schema`.`TABLES` 
    WHERE `Engine`='MyISAM' AND `TABLE_SCHEMA` !='information_schema' AND `TABLE_SCHEMA` !='mysql'"; 
$result = mysql_query($query); 

echo '--:'.mysql_num_rows($result).':--'; 
while ($row = mysql_fetch_array($result)) { 
    print_r($row); 
} 

是的,我正在使用雙引號...

+1

我們應該看到PHP代碼。 – webbiedave 2011-06-16 18:36:27

+0

當在php中執行時,你是否使用雙引號括起來,因爲你內部有單引號 – mazlix 2011-06-16 18:36:49

+0

以同一用戶登錄? – 2011-06-16 18:39:04

回答

1

謝爾蓋,

我也嘗試過這樣的事情,而且我注意到的是,phpMyAdmin的查詢字符串不是用PHP查詢字符串完全兼容。 phpmyadmin往往會爲查詢字符串添加一些額外的字符。

在你的PHP查詢嘗試類似:

SELECT table_schema, table_name FROM information_schema.TABLES WHERE TABLE_SCHEMA <> 'information_schema' AND TABLE_SCHEMA <> 'mysql' 

祝你好運!

H

+0

謝謝,這是一個組合,這是一個許可問題 – Serhiy 2011-06-16 19:26:06

+0

@Serhiy,很高興你明白了! – hypervisor666 2011-06-16 19:27:11

+0

ughhhh,是的,我忘記了不同的數據庫使用「不是」操作符的不同符號。有時!=不起作用,而是<>。 – 2011-06-17 19:12:53

1

我們需要看到你的PHP代碼來幫助你,給你更明確的答案,但是從SQL查詢的外觀,你可能會遇到反引號和單引號的問題。

嘗試清除table_schema,table_name,information_schema,TABLES和所有後引號的所有後引號。

之後,圍繞查詢字符串使用雙引號,但在...'information_schema ..',...'mysql'....和'MyISAM'周圍留下單引號。 ..

讓我們知道這是怎麼回事,併發布您的實際PHP代碼,以獲得更好的幫助。

+0

只是做了...它非常相似... – Serhiy 2011-06-16 18:46:10

+0

如果這樣做沒有成功,你可以嘗試用單引號替換反引號。我記得有一次類似的問題,但我忘記我是如何解決它的。希望有助於 – mazlix 2011-06-16 18:55:28

相關問題