成功的mysql连接但没有选择数据库?

时间:2016-02-16 20:32:29

标签: php mysql codeigniter mysqli

第一次使用mysqli并与准备好的声明斗争。 这是数据库问题,还是问题?

这是使用CodeIgniter框架与autoconfig ... http://www.codeigniter.com/user_guide/database/connecting.html

  1. 我正在使用database.php自动配置文件
  2. 我的联系是$con = mysqli_connect() or die('Error in Connecting: ' . mysqli_error($con));,似乎是成功的。
  3. 我准备好的陈述是$stmt = mysqli_prepare($con, "INSERT INTO table(documentID) VALUES (?)");
  4. 然后,当我检查准备好的语句时,我收到错误1046 No database selected但我的代码只是告诉数据库选择/连接没问题。
  5. 在我的模型中查看:

    $con = mysqli_connect() or die('Error in Connecting: ' . mysqli_error($con));
    
    if (!$con) {
            echo "Error: Unable to connect to MySQL." . PHP_EOL;
            echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
            echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
            echo "<b>";
            exit;
        }
        else
        {
            echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
            echo "Host information: " . mysqli_get_host_info($con) . PHP_EOL;
    
    //Success: A proper connection to MySQL was made! 
    
    $stmt = mysqli_prepare($con, "INSERT INTO table(documentID) VALUES (?)");
    if (!$stmt) {
            echo "Problem <b>";
            $error = $con->errno . ' ' . $con->error;
                echo $error; // 1046 No database selected
                exit;
            }
    

3 个答案:

答案 0 :(得分:1)

如果您只需要在同一连接上使用不同的数据库,则无需创建单独的数据库配置。您可以在需要时切换到其他数据库,如下所示:

Type

答案 1 :(得分:1)

重要的是要注意在建立数据库连接时需要考虑几个层。首先,您需要连接到服务器,然后连接到您选择的数据库。完成后,您就可以运行查询了。

查看mysqli_connect()的PHP手册条目 http://php.net/manual/en/function.mysqli-connect.php

构建mysqli_connect方法之后不会出现mysqli错误并不太令人惊讶,因为你从未真正要求它做任何事情。

答案 2 :(得分:0)

为了更容易阅读下一个可能遇到这个问题的人....有几个片段回答了我的问题。

  • Fred-ii指出“CI使用不同的方法作为准备好的声明” 回想起来,我不知道我是如何失去追踪的。所有突然之间我都在CodeIgniter框架之外挣扎着mysqli语句,并且咆哮着错误的树。

  • OffTheBricks指出“在构建mysqli_connect方法之后不会出现mysqli错误并不太令人惊讶,因为你从未真正要求它做任何事情。”

显然,假设我的autoconfig是正确的,并且错误检查说我的数据库连接一切都很好,只是因为我混合了两种不同的技术:CodeIgniter autoconfig文件和标准的mysqli。

感谢您的帮助......现在感觉有点像个白痴。

相关问题