Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql连接的工作原理_Php_Mysql - Fatal编程技术网

Php mysql连接的工作原理

Php mysql连接的工作原理,php,mysql,Php,Mysql,mysqli_insert_id()特定于数据库连接——它返回此脚本调用最近插入的行的id,而不是任何其他MySQL客户端。因此,如果多个应用程序同时插入数据库,则不会发生冲突 我对两件事感到困惑第一件是 特定于数据库连接 第二件事 MySQL客户端 请问是否有人可以解释mysql连接如何为不同的客户端工作,或者这些客户端在任何应用程序中的行为。如果这是一个棘手的问题,我很抱歉,但我不明白为什么它不能同时反映在数据输入中。特定于数据库连接 假设我运行一个插入行的PHP脚本,然后调用mysqli_

mysqli_insert_id()特定于数据库连接——它返回此脚本调用最近插入的行的id,而不是任何其他MySQL客户端。因此,如果多个应用程序同时插入数据库,则不会发生冲突

我对两件事感到困惑第一件是

特定于数据库连接

第二件事

MySQL客户端


请问是否有人可以解释mysql连接如何为不同的客户端工作,或者这些客户端在任何应用程序中的行为。如果这是一个棘手的问题,我很抱歉,但我不明白为什么它不能同时反映在数据输入中。

特定于数据库连接

假设我运行一个插入行的PHP脚本,然后调用mysqli_insert_id(),它告诉我它生成了值1234

接下来,还要运行一个单独的PHP脚本,将行插入到同一个表中。我们假设它生成值1235

然后,我的PHP脚本仍然以与以前相同的请求运行,再次调用mysqli_insert_id()。报告1235吗?否--它仍然报告1234,因为它只会告诉我会话期间生成的最新id

如果我的PHP请求完成,然后我发出另一个PHP请求,它连接到MySQL,这将被视为一个新连接。Mysqli_insert_id()默认情况下不报告任何内容,除非我执行新的插入

MySQL客户端

在此上下文中,mysql客户机就是一个PHP脚本,它在一个请求期间与mysql建立连接


MySQL客户机也可以是命令行MySQL工具,或者像MySQL Workbench这样的GUI界面,或者其他用PHP或其他语言编写的应用程序。术语“MySQL客户端”意味着包括所有这些。每个客户端都连接到MySQL数据库服务器,每个连接都有自己的想法,知道最后一个插入id是什么。

谢谢Bill Karwin,我的困惑现在解决了。你这个摇滚人。