Ist es möglich, einen Standard-PDO-Abrufmodus festzulegen?


72

Bevor ich Daten abrufe, muss ich immer Folgendes eingeben:

$STH->setFetchMode(PDO::FETCH_OBJ);

Um meinen Code besser lesbar zu machen, wäre es großartig, wenn ich irgendwo einen Standardmodus einstellen könnte ...

Vielen Dank!

Bearbeiten . Ich hatte ursprünglich gehofft, ich könnte PDO: FETCH_OBJ zum setAttribute- Code hinzufügen, den ich beim Herstellen einer Verbindung zur Datenbank ausführe, aber das scheint nicht zu funktionieren ...

Antworten:


137
$connection = new PDO($connection_string);
$connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);

26
$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 );

Vielen Dank für die Beantwortung! Während ein Code-Snippet die Frage beantworten könnte, ist es immer noch großartig, einige zusätzliche Informationen hinzuzufügen, wie zum Beispiel erklären usw.
j0k

Ja natürlich ! Nur um dieses PDO hinzuzufügen, können Sie eine Liste von Parametern festlegen. Mit den Array $
-Optionen

Das sieht gut aus, wie es zu diesem Zeitpunkt ist. Es funktioniert auch für PDO :: FETCH_NAME und PDO :: FETCH_ASSOC, ... usw.
BradChesney79
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.