gpt4 book ai didi

php - 为什么我的 PDO 连接失败

转载 作者:行者123 更新时间:2023-11-29 22:21:12 24 4
gpt4 key购买 nike

dbConnector.php

<?php

class DbConnector {

var $link;

function DbConnector(){
try{
$this->link = new PDO('mysql:host=127.0.0.1;dbname=system', 'root', '123456');
$this->link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->link->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
}catch(PDOException $e){
die("this is not connected");
}

}

//*** Function: query, Purpose: Execute a database query ***
// this function fail to connect
function query($query) {
try{
$this->link->prepare($query);
}catch(PDOException $e){
die("fail to prepare");
}
return $this->link->prepare($query);
}

}

?>

检查.php

<?php
include("dbConnector.php");
$connector = new DbConnector();

$username ='';

$query = "SELECT air_users FROM USER_NAME WHERE username = ? LIMIT 1";
$result = $connector->query($query);
$result->execute(array($username));

$num = $result->rowCount();
$num = $result->fetch();

echo $num;
// mysql_close();
?>

我收到返回错误

fail to prepare

我做错了什么?我仔细检查了它,但无法找出错误,我无法将其连接到我的数据库。

它只是给了我一个错误。

最佳答案

您使用了 try/catch,这很棒,但您的问题是您只是回显有问题,而不是问题是什么。

如果您打印出异常中的错误消息,我相信您会获得更多关于为什么它无法准备的信息:

try {
$this->link->prepare($query);
} catch(PDOException $e){
die($e->getMessage());
}

或者只是暂时删除 try/catch block ,让异常在测试时消失并显示在浏览器中。

关于php - 为什么我的 PDO 连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30692813/

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