php 为什么我在通过mysqli执行SQL时得到“No database selected”错误消息?

juzqafwq  于 2023-08-02  发布在  PHP
关注(0)|答案(4)|浏览(125)

我将所有使用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
]);


但我得到了错误:
未选择数据库
我验证了语法和相同的SQL工程时,在MySQL CLI中执行。我在使用mysqli时做错了什么?

f2uvfpb9

f2uvfpb91#

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

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

字符串

np8igboo

np8igboo2#

实际上,您没有选择任何数据库。您已经连接到DB服务器,其中可能有数百个数据库。你需要指定你要把查询发送到哪一个!
您的查询是正确的,并且当您直接输入它时,它可以工作,因为当您这样做时,您已经指定了要使用的数据库。

wwtsj6pe

wwtsj6pe3#

您尚未在代码中选择数据库。根据www.example.com中的this pagephp.net,在mysqli_connect或mysqli构造函数中有一个参数,您可以输入数据库名称。
下面是一个简单的例子:

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

字符串

kq0g1dla

kq0g1dla4#

试试这个解决方案:

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

$resultado = mysqli_select_db($db, $dbname);

字符串

相关问题