我如何修复函数mysql_list_tables()已弃用?

时间:2013-03-17 04:08:37

标签: php mysql deprecated

我试图为我的网站添加投票系统,我收到此错误:

Deprecated: Function mysql_list_tables() is deprecated in /home/yokoscap/public_html/vote/classes/vote.class.php on line 11
Access denied for user 'yokoscap'@'localhost' (using password: NO)

我是PHP和MySQL的新手,所以如果你可以愚蠢/帮助我解决它,那就太棒了。

Here's代码粘贴,我认为它太大了,所以我上传到pastebin。

5 个答案:

答案 0 :(得分:3)

你有check the manual吗?有一个替代它的完整示例:

<?php
$dbname = 'mysql_dbname';

if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
    echo 'Could not connect to mysql';
    exit;
}

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

if (!$result) {
    echo "DB Error, could not list tables\n";
    echo 'MySQL Error: ' . mysql_error();
    exit;
}

while ($row = mysql_fetch_row($result)) {
    echo "Table: {$row[0]}\n";
}

mysql_free_result($result);

答案 1 :(得分:2)

使用此sql查询

show tables from dbname

希望这会有所帮助

答案 2 :(得分:1)

自PHP 4.3.7(!)以来,mysql_list_tables()函数已被弃用,因为它完全过于具体。

要获取当前数据库中的表列表,请运行SHOW TABLES查询。这是一个完全正常的查询;你不需要特殊的功能就可以了。

答案 3 :(得分:0)

根据mysql_list_tables ... changelog secton 从4.3.7版开始,此函数已弃用 使用SHOW TABLES

答案 4 :(得分:-1)

我在手册中说here

  

自PHP 5.5.0起,此扩展程序已弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展。另请参阅MySQL:选择API指南和相关的常见问题解答以获取更多信息。该功能的替代方案包括: