【问题标题】:Error connecting to MySQL in XAMPP在 XAMPP 中连接 MySQL 时出错
【发布时间】:2014-10-24 17:12:00
【问题描述】:

我为登录页面创建了这个简单的 PHP 代码

<head>
    <title>Login Page</title>
</head>
<body>
        <form method=POST>
            <table>
                <tr><th>UserName</th>
                    <td><input type=text name=user></input></td></tr>
                <tr><th>Password</th>
                    <td><input type=password name=pass></input></td></tr>
                <tr><th>Phone Number</th>
                    <td><input type=text name=phone></input></td></tr>
                <tr><th>Email</th>
                    <td><input type=text name=email></input></td></tr>
                <tr><th>City</th>
                    <td><input type=text name=city></input></td></tr>
                <tr><td><input type=submit name=submit value=Submit></input></td></tr>
            </table>
        </form>

</body>
</html>
<?php
    if(isset($_POST['submit']) && !empty($_POST['user']))
        {
            if(preg_match("/^[a-zA-Z ]{3,40}$/",$_POST['user']))
                {
                    if(preg_match("/^[a-zA-Z0-9]{8,20}$/",$_POST['pass']))
                        {
                            if(filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
                                {
                                    if(preg_match("/[0-9]{10}/",$_POST['phone']))
                                        {
                                            $username=$_POST['user'];
                                            $password=$_POST['pass'];
                                            $Email=$_POST['email'];
                                            $phoneNumber=$_POST['phone'];
                                            $con=mysqli_connect("localhost:8080","root","","user");
                                            mysqli_query($con,"insert into user values('$username','$Email','$phoneNumber','$city')");

                                        }
                                    else
                                        {
                                            echo "Invalid Phone number";
                                        }
                                }
                            else
                                {
                                        echo "Invalid Email";
                                }
                        }
                        else
                            {
                                echo "Invalid Phone number";
                            }
                }

                else
                    {
                        echo "Invalid user";
                    }

        }

?>

每当我运行此脚本并尝试将值插入表中时,都会花费大量时间并引发以下错误/警告。我没有更改用户名和密码,我相信默认情况下它是 root 和空白。

警告:mysqli_connect(): MySQL server has gone away in C:\xampp\htdocs\home.php on line 39

警告:mysqli_connect():读取问候包时出错。第 39 行 C:\xampp\htdocs\home.php 中的 PID=4708

警告:mysqli_connect(): (HY000/2006): MySQL server has gone away in C:\xampp\htdocs\home.php on line 39

致命错误:在第 39 行的 C:\xampp\htdocs\home.php 中超过了 30 秒的最大执行时间

有人可以帮我解决这个问题,因为我认为问题出在某些端口配置上。

感谢和问候。

【问题讨论】:

标签: php mysql apache xampp


【解决方案1】:

默认情况下,使用 XAMPP 连接到 DB 不需要您指定端口。将localhost:8080 替换为localhost

【讨论】:

    【解决方案2】:

    如果你确定你的代码是正确的,你可以增加最大执行时间。 这次是在 php.ini 配置文件中

    ; Maximum execution time of each script, in seconds
    ; http://php.net/max-execution-time
    ; Note: This directive is hardcoded to 0 for the CLI SAPI
    max_execution_time = 30
    

    【讨论】:

      【解决方案3】:

      以下是编辑后的脚本。 尝试运行它。还要确保 mysql 工作正常。 登录页面 用户名 密码 电话号码 电子邮件 城市

      </body>
      </html>
      <?php 
          set_time_limit (0);
          if(isset($_POST['submit']) && !empty($_POST['user']))
              {
                  if(preg_match("/^[a-zA-Z ]{3,40}$/",$_POST['user']))
                      {
                          if(preg_match("/^[a-zA-Z0-9]{8,20}$/",$_POST['pass']))
                              {
                                  if(filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
                                      {
                                          if(preg_match("/[0-9]{10}/",$_POST['phone']))
                                              {
                                                  $username=$_POST['user'];
                                                  $password=$_POST['pass'];
                                                  $Email=$_POST['email'];
                                                  $phoneNumber=$_POST['phone'];
                                                  $con=mysqli_connect("localhost:8080","root","","user");
                                                  mysqli_query($con,"insert into user values('$username','$Email','$phoneNumber','$city')");
      
                                              }
                                          else
                                              {
                                                  echo "Invalid Phone number";
                                              }
                                      }
                                  else
                                      {
                                              echo "Invalid Email";
                                      }
                              }
                              else
                                  {
                                      echo "Invalid Phone number";
                                  }
                      }
      
                      else
                          {
                              echo "Invalid user";
                          }
      
              }
      
      ?>
      

      【讨论】:

        【解决方案4】:

        您不必指定端口号 8080 以及 localhost。只需使用 localhost 代替

        【讨论】:

          猜你喜欢
          • 2018-11-02
          • 2023-01-15
          • 2017-04-11
          • 2017-10-29
          • 2020-07-26
          • 2021-06-28
          • 2012-12-04
          • 1970-01-01
          • 2018-02-23
          相关资源
          最近更新 更多