为什么通过 mysqli 执行 SQL 时会出现“未选择数据库”错误消息?

问题描述 投票:0回答:5

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

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

该文件包括

<?php

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

我将文件包含在:

require_once "/location/db.php";    

之后我使用:

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

它与“已连接”相呼应。所以我认为我的连接良好。

我有 3 个 PHP 变量,我想将它们插入到我的数据库表中。

验证我的连接正常后,我想使用以下命令进行查询:

$stmt = $mysqli->prepare("INSERT INTO Code (`Name`, `Code`, `Admin`) VALUES (?,?,?)");
$stmt->execute([
    $name,
    $code,
    $admin
]);

但是我收到错误:

未选择数据库

我验证了语法,并且在 MySQL CLI 中执行时相同的 SQL 可以工作。我在使用 mysqli 时做错了什么?

php mysqli
5个回答
11
投票

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

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

3
投票

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

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


1
投票

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

这是一个简单的例子:

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

-1
投票

致命错误:未捕获 mysqli_sql_exception:在 C:\xampp\htdocs bc_international_school\get_students.php:21 中未选择数据库 堆栈跟踪:#0 C:\xampp\htdocs bc_international_school\get_students.php(21):mysqli->query ('SELECT name FR...') #1 C:\xampp\htdocs bc_international_school\index.php(8): include('C:\xampp\htdocs...') #2 {main} 抛出在 C 中:\xampp\htdocs bc_international_school\get_students.php 第 21 行


-3
投票

尝试这个解决方案:

$db = mysqli_connect($host,$username,$password);

$resultado = mysqli_select_db($db, $dbname);
© www.soinside.com 2019 - 2024. All rights reserved.