有没有人碰巧知道为什么在phpMyAdmin中执行此查询时会为我提供所需的所有数据。
但是当在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);
}
是的,我正在使用双引号......
答案 0 :(得分:1)
我们需要看到您的PHP代码来帮助您并为您提供更明确的答案,但从SQL查询的外观来看,您可能会遇到反引号和单引号的问题。
尝试删除table_schema,table_name,information_schema,TABLES和所有后引号周围的所有后引号。
之后,在查询字符串周围使用双引号,但在...'information_schema ..',...'mysql'....,和......'MyISAM'周围留下单引号...... 。
让我们知道如何发布并发布您的实际PHP代码以获得更好的帮助。
答案 1 :(得分:1)
了Serhiy,
我也试过这种事情,我注意到phpmyadmin查询字符串与PHP查询字符串不完全兼容。 phpmyadmin,往往会在其查询字符串中添加一些额外的字符。
在PHP查询中尝试类似:
SELECT table_schema, table_name FROM information_schema.TABLES WHERE TABLE_SCHEMA <> 'information_schema' AND TABLE_SCHEMA <> 'mysql'
祝你好运!
ħ