是可以设置一个默认的PDO获取模式?
在我检索数据之前,我必须input:
$STH->setFetchMode(PDO::FETCH_OBJ);
为了使我的代码更具可读性,如果我可以在某个地方设置默认模式,那就太好了….
谢谢!
编辑 。 我最初希望能够将PDO:FETCH_OBJ添加到我连接到数据库时运行的setAttribute代码中,但似乎不起作用…
$connection = new PDO($connection_string); $connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
$dsn = 'mysql:host='.$db_server.';dbname='.$db_name.';port='.$db_port; $driver_options = array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'", PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ, ); $dbh = new PDO( $dsn, $db_user, $db_pass, $driver_options );
有很多方法可以做到这一点,但我做到了,因为我想成为它。 对于端口为3306
的MySQL
,在PDO中。 我做一个string名称$dsn
。 现在我打电话给新的PDO $db = new PDO(...)
。
当你初始化你的数据库连接时,你需要使用
PDO::FETCH_OBJ
,你可以用不同的方法做到这一点,但是我把内联数组作为new PDO
PDO::FETCH_OBJ
参数。
$dsn = 'mysql:dbname=test;host=localhost;port=3306'; $username = 'root'; $password = ''; $db = new PDO($dsn, $username, $password, array ( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ ));