【问题标题】:No database selected error message没有选择数据库错误消息
【发布时间】:2013-05-01 09:30:45
【问题描述】:

我正在将所有使用 PHP MySQL 的查询更改为 MySQLi。

我用连接设置创建了一个名为 db.php 的文件。

文件包括

<?php
$db = new mysqli('localhost','mysqlusername','mysqlpassword');
echo "<h1>Success database connection</h1>";
if($db->connect_errno > 0)
{
die('No connection [' . $db->connect_error . ']');
}
?>

我将文件包含在:

require_once "/location/db.php";    

之后我使用:

 if($db->connect_error)
 {
   echo "Not connected, error: ".$db->connect_error;
 }  
 else
 {
   echo "Connected.";
 }

它回显已连接,所以我认为我的连接良好。

我有 3 个 PHP 变量要插入到我的数据库表代码中

我首先回显变量,所以我确定它们有内容。

在我验证我的连接正常(返回已连接)并回显我想要进行查询的变量的内容后:

$sql = "INSERT INTO 'Code' (`Name`, `Code`, `Admin`)
VALUES ('$name', '$code', '$admin')"; 
echo $sql;//show query
// Performs the $sql query on the server to insert the values
if ($db->query($sql) === TRUE)
{
    echo 'User Created.';
}
else 
{
    echo 'Errorcreating : '. $db->error;
}

我收到消息 Errorcreating : No database selected

我有 echo $sql 来显示查询。

如果我直接在 SQL 中复制查询,它会正常工作。

这是我第一次使用 MySQLi,所以我可能犯了一个非常愚蠢的错误,但我找不到它。

【问题讨论】:

  • echo "

    数据库连接成功

    ";您没有指定任何条件何时打印此内容,即使连接未建立,您也将始终收到 dis 消息。
  • 我宁愿 -1 因为错误信息是不言自明的
  • 是的,但我正在连接,所以我认为没关系

标签: php mysqli


【解决方案1】:

打开连接时,您可以将数据库名称作为第四个参数传递:

$db = new mysqli('localhost','mysqlusername','mysqlpassword','database');

另外,你的转义字符是错误的。不要在表名周围使用单引号,而是使用反引号运算符

$sql = "INSERT INTO `Code` (`Name`, `Code`, `Admin`)VALUES ('$name', '$code', '$admin')"; 

【讨论】:

    【解决方案2】:

    事实上,您没有选择任何数据库。您已连接到数据库服务器,那里可能有数百个数据库。您需要指定要将查询发送到哪一个!

    您的查询很好,当您直接输入它时它可以工作,因为当您这样做时,您已经指定了要使用的数据库。

    【讨论】:

      【解决方案3】:

      您尚未在代码中选择您的数据库。根据php.net中的this page,mysqli_connect或mysqli构造函数中有一个参数,您可以输入您的数据库名称。

      这是一个简单的例子:

      <?php
      $mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
      

      【讨论】:

        【解决方案4】:

        试试这个

        <?php
        $servername = "localhost";
        $username = "username";
        $password = "password";
        // Create connection
        $conn = mysqli_connect($servername, $username, $password);
        // Check connection
        if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
        }
        echo "Connected successfully";
        ?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-09
          • 2019-06-17
          • 2011-09-17
          • 2018-01-27
          • 2022-01-25
          • 2021-11-11
          相关资源
          最近更新 更多