我正在将代码从php 5.x迁移到php 7,看来mysql_tablename
和mysql_list_dbs
没有替代功能。我无法更换它。以下是我不推荐使用它的方式。
{
$qid = mysql_list_dbs($this->_connectionID);
$arr = array();
$i = 0;
$max = mysqli_num_rows($qid);
while ($i < $max) {
$db = mysql_tablename($qid,$i);
if ($db != 'mysql') $arr[] = $db;
$i += 1;
}
return $arr;
}
最佳答案
迁移到mysqli(php7)
幸运的是,myslq_
和mysqli_
函数非常相似。唯一的区别是字母i
应该附加到mysql_
函数。在大多数情况下,您只需要更改函数名称即可。以下是mysql_
和mysqli_
之间不兼容的功能的列表:
mysql_client_encoding()
mysql_list_dbs() (use SHOW DATABASES query)
mysql_db_name()
mysql_list_fields()
mysql_db_query()
mysql_list_processes() (use SHOWPROCESSLIST query)
mysql_dbname()
mysql_list_tables() (use SHOWTABLES query)
mysql_field_flags()
mysql_listdbs() (use SHOW DATABASES query)
mysql_field_len()
mysql_listfields()
mysql_field_name()
mysql_listtables() (use SHOWTABLES query)
mysql_field_table()
mysql_numfields()
mysql_field_type()
mysql_numrows() (use mysqli_num_rows() instead)
mysql_fieldflags()
mysql_pconnect() (append p: to thehostname passed to mysqli_connect())
mysql_fieldlen()
mysql_result()
mysql_fieldname()
mysql_selectdb() (use mysqli_select_db() instead)
mysql_fieldtable()
mysql_table_name()
mysql_fieldtype()
mysql_tablename()
mysql_freeresult() (use mysqli_free_result() instead)
mysql_field_name()
mysql_listtables() (use SHOWTABLES query)
mysql_field_table()
mysql_numfields()
mysql_field_type()
mysql_numrows() (usemysqli_num_rows() instead)
mysql_fieldflags()
mysql_pconnect() (append p: to thehostname passed to mysqli_connect())
mysql_fieldlen()
mysql_result()
mysql_fieldname()
mysql_selectdb() (usemysqli_select_db() instead)
mysql_fieldtable()
mysql_table_name()
mysql_fieldtype()
mysql_tablename()
mysql_freeresult() (usemysqli_free_result() instead)
mysql_unbuffered_query()
有用的链接:http://code-epicenter.com/things-you-should-know-when-upgrading-to-php-7/
关于php - php7中的mysql_list_dbs和mysql_tablename,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51712279/