Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 警告:mysqli_select_db()要求参数1为mysqli,给定为null_Php_Mysql_Mysqli - Fatal编程技术网

Php 警告:mysqli_select_db()要求参数1为mysqli,给定为null

Php 警告:mysqli_select_db()要求参数1为mysqli,给定为null,php,mysql,mysqli,Php,Mysql,Mysqli,我一直收到一条错误消息 <?php mysqli_connect("localhost", "root", ""); mysqli_select_db("account"); ?> 以下是我尝试在浏览器中加载时收到的错误消息: 警告:mysqli_select_db()要求参数1为mysqli,在第4行的C:\xampp\htdocs\MyWebsite\TechanexSiteBase\connect.php中给出空值 Yuu可以创建mysqli连接,如下所示: $mys

我一直收到一条错误消息

<?php

mysqli_connect("localhost", "root", "");
mysqli_select_db("account");

?>

以下是我尝试在浏览器中加载时收到的错误消息:

警告:mysqli_select_db()要求参数1为mysqli,在第4行的C:\xampp\htdocs\MyWebsite\TechanexSiteBase\connect.php中给出空值


Yuu可以创建mysqli连接,如下所示:

$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
完整指南 注意

  • 使用mysqli,您可以在
    mysqli\u connect()
  • 您必须使用
    mysqli\u connect\u error()
    而不是mysqli\u error()
    ,才能获取
    mysqli\u connect()
    中出现错误,因为后者需要您提供 有效的连接

    <?php
    
        // Creating a database connection
    
        $connection = mysqli_connect("localhost", "root", "", "databse_name");
        if (!$connection) {
            die("Database connection failed: " . mysqli_connect_error());
        }
    
    
        // Selecting a database 
    
        $db_select = mysqli_select_db($connection, "databse_name");
        if (!$db_select) {
            die("Database selection failed: " . mysqli_connect_error());
        }
    
    ?>
    
    
    

只需复制并粘贴&然后更改数据库名称

就可以通过一行建立连接,如下所示

<?php
$con = mysqli_connect("localhost", "root", "","account");
?>

这里,localhost=服务器地址;root=用户名;“”=密码;account=您的数据库名称


还有另一种方法,就像您尝试过的:

<?php
$con = mysqli_connect("localhost", "root", ""); //connection
mysqli_select_db($con, "account"); //Mysqli_select_db() function expects exactly 2 parameters.
?>

问题正文没有意义,因为代码与错误消息不一致。对于当前的代码,错误消息应该是
警告:mysqli_select_db()期望参数1是mysqli,字符串给定的

除此之外,这个问题似乎吸引了许多真正从问题标题中得到错误的访问者。对于他们,这里有一个完整的、适当的、关于以下方面的指南:

按照这个程序,你永远不会出现这样的错误。以及由其他答案中建议的代码引起的许多其他错误

此代码的重要优点包括

  • 如您所见,根本不需要调用mysqli\u select\u db()函数,因为数据库名称可以在
    mysqli\u connect()中提供
  • 设置了正确的错误报告模式,因此将报告实际错误消息,解释为什么
    mysqli_connect()
    返回
    null
    ,因此您可以修复错误
  • 必须始终设置正确的字符集
  • 并且应正确处理连接错误。某些mysqli内部组件并不是您真正希望网站访问者看到的内容

关于所有这些问题的详细解释可以在上面链接的文章中找到。

您可以将您的db名称添加到
mysqli_connect(“localhost”、“root”、“account”)作为第四要素

您不应将面向对象方法和基于函数的方法混用请阅读:请阅读:
<?php
$con = mysqli_connect("localhost", "root", ""); //connection
mysqli_select_db($con, "account"); //Mysqli_select_db() function expects exactly 2 parameters.
?>
$host = '127.0.0.1';
$db   = 'test';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
try {
    $mysqli = mysqli_connect($host, $user, $pass, $db);
    mysqli_set_charset($mysqli, $charset);
} catch (\mysqli_sql_exception $e) {
     throw new \mysqli_sql_exception($e->getMessage(), $e->getCode());
}