据我了解,正常的mysql mysql.*
方法库已被库mysqli.*
稍微取代。基本上,我的理解是新库使用所有旧方法,只是在方法名称的末尾标记了字母“i”。三个问题:
帮助表示赞赏。
答案 0 :(得分:12)
使用Notepad ++,突出显示mysqli,然后
真假
mysqli_affected_rows
mysqli_autocommit
mysqli_change_user
mysqli_character_set_name
mysqli_close
mysqli_commit
mysqli_connect_errno
mysqli_connect_error
mysqli_connect
mysqli_data_seek
mysqli_debug
mysqli_dump_debug_info
mysqli_errno
mysqli_error_list
mysqli_error
mysqli_fetch_all
mysqli_fetch_array
mysqli_fetch_assoc
mysqli_fetch_field_direct
mysqli_fetch_field
mysqli_fetch_fields
mysqli_fetch_lengths
mysqli_fetch_object
mysqli_fetch_row
mysqli_field_count
mysqli_field_seek
mysqli_field_tell
mysqli_free_result
mysqli_get_charset
mysqli_get_client_info
mysqli_get_client_stats
mysqli_get_client_version
mysqli_get_connection_stats
mysqli_get_host_info
mysqli_get_proto_info
mysqli_get_server_info
mysqli_get_server_version
mysqli_info
mysqli_init
mysqli_insert_id
mysql_kill
mysqli_more_results
mysqli_multi_query
mysqli_next_result
mysqli_num_fields
mysqli_num_rows
mysqli_options
mysqli_ping
mysqli_prepare
mysqli_query
mysqli_real_connect
mysqli_real_escape_string
mysqli_real_query
mysqli_reap_async_query
mysqli_refresh
mysqli_rollback
mysqli_select_db
mysqli_set_charset
mysqli_set_local_infile_default
mysqli_set_local_infile_handler
mysqli_sqlstate
mysqli_ssl_set
mysqli_stat
mysqli_stmt_init
mysqli_store_result
mysqli_thread_id
mysqli_thread_safe
mysqli_use_result
mysqli_warning_count
答案 1 :(得分:1)
我不能为你回答1号因为我不知道细节。
2:我不知道为什么它默认不包括在内,但您可以手动添加它 转到settings->样式配置器并在语言下选择php。在风格下选择WORD 在名为“用户定义的关键字”的框中添加您使用的所有mysqli_ *函数。从现在开始,它们将被突出显示。
3:现在,他们会工作。它在5.5中已弃用,这意味着它会在您使用它时发出警告。最终,它将被完全删除。仍然,切换到mysqli,以便在升级时没有任何中断。
答案 2 :(得分:0)
来自PHP.net关于databases
的常见问题解答为什么我使用超过10年的MySQL扩展(ext / mysql)不鼓励使用?它被弃用了吗?我该怎么用 代替?我该如何迁移?
有三个MySQL扩展,如Choosing a MySQL API部分所述。不应该使用旧的API,有一天它 将被弃用并最终从PHP中删除。这是一个受欢迎的 扩展所以这将是一个缓慢的过程,但你是强烈的 鼓励用mysqli或者{。}编写所有新代码 PDO_MySQL。
目前还没有迁移脚本,尽管mysqli API包含过程和OOP API以及过程 版本类似于ext / mysql。
无法混合扩展名。所以,例如,传递一个 与
mysqli
或PDO_MySQL
的{{1}}连接无效。
关于Notepad ++功能的问题,你必须在他们的官方论坛/社区上提问。
您的第3个问题的回复隐藏在上面的摘录中:
旧的API 不应该,有一天它将被弃用并且最终从PHP中移除。这是一个受欢迎的扩展,因此这将是一个缓慢的过程,但您强烈鼓励 写所有新代码使用mysqli
或PDO_MySQL
。
答案 3 :(得分:0)
基本上,我的理解是新库使用所有旧方法,只是在方法名称的末尾标记了字母“i”。
不一定。 mysqli
函数现在有两种形式,可以是程序性的(如旧的mysql
)或面向对象的样式。 (例如$result->fetch_array()
)。
来自php.net
mysqli扩展程序具有双重界面。它支持程序和面向对象的编程范例。
一些新的mysqli
函数也接受旧版本的不同参数。最常见的是,大多数功能现在需要mysqli
链接(mysqli
连接)作为参数。
至于为何他们改变了它,显然必须有几个原因。最重要的是安全性和稳定性,并引入新的OO风格必须是一个原因。
看一下这些好处:MySQLi extension benefits
答案 4 :(得分:0)
2)我从未使用过Notepad ++,我使用的是Sublime Text 2.文本编辑器可能无法满足所有语言的要求,所以也许有一个适用于mysqli的Notepad ++插件?
自PHP 5.5.0起,此扩展程序已弃用,不建议用于编写新代码,因为将来会将其删除。
进行切换可能是一个好主意,它肯定不会受到伤害,与PHP与MySql交互的方式保持同步肯定会很好。
编辑:对我来说,写MySqli比MySql更顺畅,因为在使用MySqli类时,我不必在查询结尾处包含连接。
$query = $mysqli->query("SELECT * FROM table");
而不是
$query = mysql_query("SELECT * FROM table",$link);