未捕获异常 'PDOException',消息 'invalid data source name'
Uncaught exception 'PDOException' with message 'invalid data source name'
我知道有很多关于 Whosebug 的问题,但我都阅读了它们,但我没有解决,所以我问了新问题。我有一个名为 article.php 的文件,我有这个代码初始化。只是显示错误的代码。
public static function getById( $id ) {
$conn = new PDO( DB_HOST, DB_USERNAME, DB_PASSWORD );
$sql = "SELECT *, UNIX_TIMESTAMP(publicationDate) AS publicationDate FROM articles WHERE id = :id";
$st = $conn->prepare( $sql );
$st->bindValue( ":id", $id, PDO::PARAM_INT );
$st->execute();
$row = $st->fetch();
$conn = null;
if ( $row ) return new Article( $row );
我收到这个错误:
Fatal error: Uncaught exception 'PDOException' with message 'invalid data source name' in C:\wamp64\www\classes\Article.php on line 102
( ! ) PDOException: invalid data source name in C:\wamp64\www\cms\classes\Article.php on line 102
我的配置文件看起来像
ini_set( "display_errors", true );
define( "DB_HOST", "localhost" );
define( "DB_USERNAME", "username" );
define( "DB_PASSWORD", "" );
define('DB_NAME', 'name');
你能告诉我为什么会这样以及我哪里做错了吗?谢谢
您当前的代码似乎之前与 mysql
或 mysqli
连接器一起使用,但是 PDO
更通用并且支持多个数据库供应商而不仅仅是 MySQL .所以你需要告诉PDO
连接哪个数据库等等
因此 PDO
无法仅与数据库名称建立连接,您的 DB_HOST
必须与此类似:
define('DB_HOST','mysql:host=localhost;dbname=testdb');
更多连接选项:
mysql:host=localhost;port=3307;dbname=testdb
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb
getting this error mysqli_real_escape_string() expects exactly 2 parameters, 1 given
你不需要这个,因为你正在使用 PDO。请改用 PDO 的 API。
我知道有很多关于 Whosebug 的问题,但我都阅读了它们,但我没有解决,所以我问了新问题。我有一个名为 article.php 的文件,我有这个代码初始化。只是显示错误的代码。
public static function getById( $id ) {
$conn = new PDO( DB_HOST, DB_USERNAME, DB_PASSWORD );
$sql = "SELECT *, UNIX_TIMESTAMP(publicationDate) AS publicationDate FROM articles WHERE id = :id";
$st = $conn->prepare( $sql );
$st->bindValue( ":id", $id, PDO::PARAM_INT );
$st->execute();
$row = $st->fetch();
$conn = null;
if ( $row ) return new Article( $row );
我收到这个错误:
Fatal error: Uncaught exception 'PDOException' with message 'invalid data source name' in C:\wamp64\www\classes\Article.php on line 102
( ! ) PDOException: invalid data source name in C:\wamp64\www\cms\classes\Article.php on line 102
我的配置文件看起来像
ini_set( "display_errors", true );
define( "DB_HOST", "localhost" );
define( "DB_USERNAME", "username" );
define( "DB_PASSWORD", "" );
define('DB_NAME', 'name');
你能告诉我为什么会这样以及我哪里做错了吗?谢谢
您当前的代码似乎之前与 mysql
或 mysqli
连接器一起使用,但是 PDO
更通用并且支持多个数据库供应商而不仅仅是 MySQL .所以你需要告诉PDO
连接哪个数据库等等
因此 PDO
无法仅与数据库名称建立连接,您的 DB_HOST
必须与此类似:
define('DB_HOST','mysql:host=localhost;dbname=testdb');
更多连接选项:
mysql:host=localhost;port=3307;dbname=testdb
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb
getting this error mysqli_real_escape_string() expects exactly 2 parameters, 1 given
你不需要这个,因为你正在使用 PDO。请改用 PDO 的 API。