【问题标题】:How are database connections opened by mysql_connect() closed?mysql_connect() 打开的数据库连接是如何关闭的?
【发布时间】:2011-07-28 00:59:57
【问题描述】:

根据 php 文档,“到服务器的链接将在脚本执行结束后立即关闭,除非它通过显式调用 mysql_close() 提前关闭。”

http://php.net/manual/en/function.mysql-connect.php

在 1) 未发布用户名时和 2) 发布用户名时(请注意卫生),何时打开和关闭此脚本的连接?

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'password';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die (mysql_error());
mysql_select_db("members") or die(mysql_error());
?>

<?php
if (isset ($_POST['username'])){
    $username=$_POST['username'];
    $sql = mysql_query("INSERT INTO members (username) VALUES('$username'") or die (mysql_error());


}
else{
    $username='';
}
?>

<html>
    <form action="register.php" method="post" enctype="multipart/form-data">
        <input type="text" name="username" size="30" maxlength="400" value="<?php echo htmlentities(stripslashes($username)); ?>" />
    </form>
</html>

【问题讨论】:

  • 以上都不是,$conn一调用mysql_connect就建立连接,整个请求运行后关闭,包括 尾随 html / 非 php 输出。
  • 啊,谢谢你,这里是新手,但我正在学习!

标签: php mysql html forms


【解决方案1】:

连接在脚本顶部打开,无论是否发布表单,因此在每次页面加载时打开一次。一旦最终的&lt;/html&gt; 标记被传递给客户端,连接就会关闭。

【讨论】:

  • 谢谢 Tak,所以如果没有 并且整个事情只是一个 php 脚本,一旦最终的 标记交付给客户端,它就会关闭,正确?
  • 是的,它在 .php 文件的末尾关闭,无论是 PHP 还是 HTML。
  • @tak:所以,不,不是在最后的 php-tag (?&gt;),而是在请求的末尾。给出另一个以 yes 开头的答案有点令人困惑;)
  • 您的 PHP 脚本仅将 HTML 发送到客户端。然后客户端向服务器发送另一个单独的(通常)请求,请求图像、CSS、MP3 等。
  • 一个网络请求连接是,是的,但不是原始网络请求连接,因此不是数据库连接。
猜你喜欢
  • 1970-01-01
  • 2014-03-29
  • 2019-12-31
  • 2017-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多