PDO/MySQL 使用 MAMP 连接
PDO/MySQL connection using MAMP
我正在尝试编写一个简单的 CMS,但在进行 PDO 连接时遇到了 try/catch 错误。我很确定使用 PDO 时错误来自 MAMP,但我不知道如何修复它。我写的代码如下:
includes/connection.php
<?php
try {
$dbc = new PDO('myqsl:host=localhost;dbname=cms1', 'root', 'root');
} catch (PDOException $e){
exit("Database error.");
}
?>
index.php
<?php
include_once('includes/connection.php');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div class="container">
<a href="index.php">CMS</a>
<ol>
<li><a href="article.php?id=1">Article title</a> - <small>Posted 10th Jan</small></li>
</ol>
</div>
</body>
</html>
请帮帮我。
此行有错字(如果不是错字):
$dbc = new PDO('myqsl:host=localhost
^^^^^
应读作:
$dbc = new PDO('mysql:host=localhost
您的 PDOException
还应包含 真实的 错误消息,而不仅仅是 "Database error":
catch(PDOException $e) { print $e->getMessage(); }
包括:
$dbc->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
连接打开后。
参考文献:
对于使用 Laravel 和 MAMP 的任何人:
您还需要将以下内容添加到您的 code/controller(通常在您的 class 之外)。
使用PDO;
示例如下:
<?php
namespace App\Http\Controllers\db_task_related\misc\pdo_related;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use PDO;
class pdo_test extends Controller
{
public function run ()
{
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "my_db";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
$conn = null;
}
catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
}
}
没有'use PDO;'在某些情况下你会收到一个错误
例如:
Class 'App\Http\Controllers\db_task_related\misc\column_checks\PDO' 未找到
我正在尝试编写一个简单的 CMS,但在进行 PDO 连接时遇到了 try/catch 错误。我很确定使用 PDO 时错误来自 MAMP,但我不知道如何修复它。我写的代码如下:
includes/connection.php
<?php
try {
$dbc = new PDO('myqsl:host=localhost;dbname=cms1', 'root', 'root');
} catch (PDOException $e){
exit("Database error.");
}
?>
index.php
<?php
include_once('includes/connection.php');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div class="container">
<a href="index.php">CMS</a>
<ol>
<li><a href="article.php?id=1">Article title</a> - <small>Posted 10th Jan</small></li>
</ol>
</div>
</body>
</html>
请帮帮我。
此行有错字(如果不是错字):
$dbc = new PDO('myqsl:host=localhost
^^^^^
应读作:
$dbc = new PDO('mysql:host=localhost
您的 PDOException
还应包含 真实的 错误消息,而不仅仅是 "Database error":
catch(PDOException $e) { print $e->getMessage(); }
包括:
$dbc->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
连接打开后。
参考文献:
对于使用 Laravel 和 MAMP 的任何人:
您还需要将以下内容添加到您的 code/controller(通常在您的 class 之外)。
使用PDO;
示例如下:
<?php
namespace App\Http\Controllers\db_task_related\misc\pdo_related;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use PDO;
class pdo_test extends Controller
{
public function run ()
{
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "my_db";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
$conn = null;
}
catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
}
}
没有'use PDO;'在某些情况下你会收到一个错误
例如: Class 'App\Http\Controllers\db_task_related\misc\column_checks\PDO' 未找到