【问题标题】:php wont connect to mysqlphp无法连接到mysql
【发布时间】:2014-12-07 17:30:45
【问题描述】:

我正在尝试创建一个连接到 mysql 数据库并将数据插入数据库的 PHP 文件。但是我很难让它连接到数据库。我收到以下错误 ( ! ) 注意:未定义变量:第 34 行 C:\wamp\www\php_Final_kk.php 中的 dbname 调用栈

( ! ) 注意:未定义变量:C:\wamp\www\php_Final_kk.php 第 52 行中的 sql

SQLSTATE[HY000] [1045] 用户 'root'@'localhost' 的访问被拒绝(使用密码:YES)

我的用户名和密码对于数据库是正确的,并且所有权限都已被授予,但我似乎无法连接它,任何帮助都会得到帮助,我在下面包含了我的代码。谢谢!

<?php


$servername = "localhost";
$username = "root";
$password = "";

// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

    $fname = $_POST['fname'];
    $lname = $_POST['lname'];
    $email = $_POST['email'];
    $uname = $_POST['uname'];
    $password = $_POST['password'];
    $SSN = $_POST['ssn'];

    try {
        $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);

        // set the PDO error mode to exception
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);





$sql = "INSERT INTO users (fname, lname,email,username,password,SSN) VALUES ('$fname',        '$lname', '$email', '$uname', '$password', '$ssn')";


        // use exec() because no results are returned
        $conn->exec($sql);
        echo "New record created successfully";
        }

    catch(PDOException $e)
        {

        echo $sql . "<br>" . $e->getMessage();
        }

    $conn = null;





?>

enter code here

【问题讨论】:

  • 你的 dbname 变量在哪里

标签: php mysql error-handling database-connection


【解决方案1】:

当您通过mysqli_connect 创建连接时,您必须提供 4 个参数:主机、用户名、密码和数据库名称。您缺少数据库名称。

正确的称呼是:

$link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');

if (!$link) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

official docs里都有解释

【讨论】:

    【解决方案2】:

    您尚未定义数据库名称

    dbname=$dbname
    
    
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "my db name";
    
    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $dbname );
    

    【讨论】:

      【解决方案3】:

      此处更正:

      您必须提供 4 个必要的参数:主机、用户名、密码和数据库名称。您缺少数据库名称。

      $servername = 'localhost';
      $username = 'root';
      $password = '';
      $dbname = 'test';
      
      // Create connection
      $conn = mysqli_connect($servername, $username, $password, $dbname);
      // Check connection
      if (!$conn) {
          die("Connection failed: " . mysqli_connect_error());
      }
      

      $dbname 是您的代码中缺少的数据库名称。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-22
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 2010-10-14
        • 2018-12-11
        • 2010-12-24
        • 2023-03-28
        相关资源
        最近更新 更多