gpt4 book ai didi

php - SQLSTATE[3D000] : Invalid catalog name: 1046 No database selected

转载 作者:太空宇宙 更新时间:2023-11-03 10:44:30 28 4
gpt4 key购买 nike

我正在尝试使用 PDO 将数据插入数据库中的 3 个表之一。当我调用下面的插入函数时,出现错误:SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected. enter image description here

最佳答案

可能在这里冒险

在我看来,您还没有为您的连接创建任何变量/数组,或者配置不正确。 (您的问题中没有足够的代码)。

来自 PDO 连接手册 http://php.net/manual/en/pdo.connections.php

示例 #1 连接到 MySQL

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>

示例 #2 处理连接错误

<?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach($dbh->query('SELECT * from FOO') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>

另外,查看代码的“图像”,在我看来,您在列周围使用了常规引号,而不是刻度线。这些是两种不同的动物

INSERT INTO Students ('RIN', 'First Name', 'Last Name' ...

单词之间有空格,是的;必须使用刻度。

因此,您需要修改您的代码以读取为

INSERT INTO Students (`RIN`, `First Name`, `Last Name` ...

并将引号更改为上面概述的所有其他列名称的刻度。我不打算在这里输入所有内容。

您还需要检查 DSN 中的异常错误。使用您现在拥有的是不够的。

Example #1 创建一个 PDO 实例并设置错误模式

<?php
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
$dbh = new PDO($dsn, $user, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}

?>
  • 确保您选择(并创建)了正确的数据库/表,并且您确实创建了所有这些列并使用了正确的类型和长度。

如果您遇到 MySQL 可能会提示的错误(例如撇号),那么您将需要对数据进行转义;无论如何你应该做的事情。

引用以下内容,并使用准备好的语句:

关于php - SQLSTATE[3D000] : Invalid catalog name: 1046 No database selected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33794741/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com