Php 未选择任何数据库,即使已明确说明

Php 未选择任何数据库,即使已明确说明,php,mysql,Php,Mysql,我有一个在脚本中运行的查询,当它在mysql工作台中运行时,它工作正常 但是,运行脚本会导致powershell中出现“未选择数据库”错误。我已经按照错误提示进行了操作,但是您可以看到,在我的查询中,我显式地声明了每个表的数据库,即(agombit.agombit\u totals) 是否还有其他约束条件需要添加 $stmt3 = mysqli_prepare($conn2, "UPDATE ambition.ambition_totals a

我有一个在脚本中运行的查询,当它在mysql工作台中运行时,它工作正常

但是,运行脚本会导致powershell中出现“未选择数据库”错误。我已经按照错误提示进行了操作,但是您可以看到,在我的查询中,我显式地声明了每个表的数据库,即(agombit.agombit\u totals)

是否还有其他约束条件需要添加

$stmt3 = mysqli_prepare($conn2,
             "UPDATE ambition.ambition_totals a
                INNER JOIN 
                (SELECT 
                    c.user AS UserID,
                    COUNT(*) AS dealers,
                    ROUND((al.NumberOfDealers / al.NumberOfDealerContacts) * 100 ,2)  AS percent
                FROM jfi_dealers.contact_events c
                JOIN jackson_id.users u
                ON c.user = u.id
                JOIN jfi_dealers.dealers d
                ON c.dealer_num = d.dealer_num
                LEFT JOIN (
                  SELECT user_id, COUNT(*) AS NumberOfDealerContacts,
                  SUM(CASE WHEN ( d.next_call_date + INTERVAL 7 DAY) THEN 1 ELSE 0 END) AS NumberOfDealers
                  FROM jackson_id.attr_list AS al
                  JOIN jfi_dealers.dealers AS d ON d.csr = al.data
                  WHERE al.attr_id = 14
                  GROUP BY user_id) AS al
                ON al.user_id = c.user
                GROUP BY UserID) as cu
                on cu.UserID = a.ext_id 
                SET a.dealers_contacted = cu.dealers,
                  a.percent_up_to_date = cu.percent;
                        ") or die(mysqli_error($conn2));

将数据库名称指定为
mysqli\u connect()

下面是一个假设您正在本地主机上连接的示例:

$conn2 = mysqli_connect("localhost", "your_username", "your_password", "ambition");

或者,如果
mysqli
不是您的默认数据库,则在您的
mysqli\u准备
语句之前,是否选择\u db(“野心”)

您是否在mysqli连接中指定了数据库?如果没有,您需要。您应该首先使用来选择一个数据库…或者在创建连接时将其指定为@JayBlanchard saidNo,您应该始终在连接中指定数据库
mysqli\u select\u db()
仅用于更改。()否,应始终在连接中指定数据库
mysqli\u select\u db()
仅用于更改。谢谢。我只是给出了可能的解决方案,因为OP没有显示连接是如何建立的。我认为db在创建时没有被指定(因为它是可选的)。正如我所指出的,它不是可选的。即使文档中没有说明,您也必须在连接期间说明默认数据库。然后,也只有这样,才能使用
mysqli\u change\u db()
更改默认数据库。我无法告诉您有多少次人们遇到这个错误,并在连接过程中通过指定默认值来纠正它。不是所有参数都是可选的吗?说他们是我明白,但请看一下文件。这不是保证的行为。