【问题标题】:mysql database connectivity errormysql数据库连接错误
【发布时间】:2017-05-02 14:26:01
【问题描述】:

每当我提供注册数据并按下注册按钮时,数据都不会插入到表中并且显示“失败”。 我不明白为什么会这样。 HTML代码如下。

<form action="connection.php" method="post">
<label for="fname" style="color: white; margin-top: 0%;">Full Name</label>
<input type="text" id="FulName" name="FullName" placeholder="Full Name">
<br>
<label for="email" style="color: white;">Email</label>
<input type="text1" id="Email" name="UserEmail" placeholder="User Email">
<br>
<label for="fname" style="color: white;">User Name</label>
<input type="text2" id="UserName" name="UserName" placeholder="User Name">
<br>
<label for="password" style="color: white;">Password</label>
<input type="Password" id="Pass" name="Pass" placeholder="User Password">
<br>                
<input type="submit" value="Sign Up">
</form> 

php代码如下。

define('DB_HOST', 'localhost');
define('DB_NAME', 'nfakonline');
define('DB_USER','root');
define('DB_PASSWORD','');
$con=mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect    MySQL: " . mysqli_error());
$db=mysqli_select_db(DB_NAME,$con) or die("Failed !" . mysqli_error());

错误:失败

【问题讨论】:

  • 应该是mysqli_select_db($con, DB_NAME)
  • 那,加上mysqli_error($con) 需要连接对象。并在连接时使用mysqli_connect_error()(无参数)。

标签: php html css mysql


【解决方案1】:

在 mysqli 中,您必须将连接对象作为第一个参数传递

$db=mysqli_select_db($con,DB_NAME) or die("Failed !" . mysqli_error($con));

【讨论】:

    【解决方案2】:

    改变

    $con=mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect    MySQL: " . mysqli_error());
    

    $con = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);
    
    // Check connection
    if (mysqli_connect_errno())
    {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    

    【讨论】:

      【解决方案3】:

      简单的 Google 搜索会告诉你 mysqli_select_db() 将第一个参数作为 mysql 连接链接,将第二个参数作为 dbname。

      在你的情况下是:

      mysqli_select_db($con, DB_NAME);
      

      还有 mysqli_error() 需要连接链接:

      mysqli_error($con);
      

      这里是你的链接,你可以阅读更多:

      http://php.net/manual/en/mysqli.select-db.php

      http://php.net/manual/en/mysqli.error.php

      【讨论】:

        【解决方案4】:

        你犯了两个错误:

        1. 您对mysqli_select_db(DB_NAME,$con) 使用了错误的语法。

          正确的语法是:mysqli_select_db($con,DB_NAME)

        2. 你没有通过mysqli_error()函数中的连接。

          正确的语法是:mysqli_error($con)

        使用这个 PHP 代码:

        <?php
        define('DB_HOST', 'localhost');
        define('DB_NAME', 'mywebsite');
        define('DB_USER','root');
        define('DB_PASSWORD','');
        $con=mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect    MySQL: " . mysqli_error());
        $db=mysqli_select_db($con,DB_NAME) or die("Failed !" . mysqli_error($con));
        ?>
        

        希望对你有帮助!

        【讨论】: