我去view.php時出現以下錯誤:{"success":0,"message":"SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected"},有人可以幫忙解決這個問題嗎?
我的代碼是這樣的:
db_connect.php
<?php
class Operations{
private $db_host = "localhost";
private $db_name = "supplierInquiry";
public function dbConnection()
{
try {
$conn = new PDO('mysql:host=' . $this->db_host . ';dbName=' . $this->db_name);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $conn;
} catch (PDOException $e) {
echo "Connection error " . $e->getMessage();
exit;
}
}
}
?>
在 view.php 中的代碼是:
<?php
error_reporting(E_ERROR);
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: access");
header("Access-Control-Allow-Methods: GET");
header("Content-Type: application/json; charset=UTF-8");
if ($_SERVER['REQUEST_METHOD'] !== 'GET') :
http_response_code(405);
echo json_encode([
'success'=>0,
'message'=>'Bad Request Detected! Only get method is allowed',
]);
exit;
endif;
require 'db_connect.php';
$database = new Operations();
$conn = $database->dbConnection();
if (isset($_GET['id'])) {
$suppliers_id = filter_var($_GET['id'], FILTER_VALIDATE_INT, [
'options' => [
'default' => 'all_suppliers',
'min_range' => 1
]
]);
}
try {
$sql = is_numeric($suppliers_id) ? "SELECT * FROM `supplier` WHERE id='$suppliers_id'" : "SELECT * FROM `supplier`";
$stmt = $conn->prepare($sql);
$stmt->execute();
if ($stmt->rowCount() > 0) :
$data = null;
if (is_numeric($suppliers_id)) {
$data = $stmt->fetch(PDO::FETCH_ASSOC);
} else {
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
echo json_encode([
'success' => 1,
'data' => $data,
]);
else :
echo json_encode([
'success' => 0,
'message' => 'No Record Found!',
]);
endif;
}
// The error is from this catch
catch (PDOException $e) {
http_response_code(500);
echo json_encode([
'success' => 0,
'message' => $e->getMessage()
]);
exit;
}
?>
![php SQLSTATE [3D000]:目錄名稱無效:1046 未選擇資料庫](https://img.uj5u.com/2022/03/16/e2cce0f0cca7446cbd685cd6006a48ac.jpg)
這是我學習的視頻教程https://www.youtube.com/watch?v=5huuXugiVNU。
uj5u.com熱心網友回復:
您使用的 MySQL DSN 有一個錯字:應該是dbname而不是dbName
在https://extendsclass.com/php-bin/8c2096d中測驗
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/444746.html
