0
私はMySQLデータベースからデータをフェッチするためにdoctrineを使用しています。これはすべてシレックスで行われます。これらは私にとってDoctrineを有効にするコード行です。SQLデータはDoctrine(およびSilex)を使用して配列として返されます
$config = new \Doctrine\DBAL\Configuration();
$connParams = array(
'driver' => 'pdo_mysql',
'dbname' => 'webshop',
'host' => 'localhost',
'user' => 'root',
'password' => '',
'charset' => 'utf8'
);
$conn = \Doctrine\DBAL\DriverManager::getConnection($connParams, $config);
$app['dbcon'] = $conn;
$app->get('/', function() use ($app){
$user = new User($app['dbcon']);
return $app['twig']->render('home.twig', [
'content' => 'Home',
]);
})->bind('home');
そして、私は、ログインもののためのユーザクラスを作成しようとしているなど、ユーザークラスは次のようになります。
<?php
namespace Models;
class User
{
private $db;
public function __construct($db)
{
$this->db = $db;
$query = $this->db->prepare("SELECT * FROM users");
$query->execute();
$query = $query->fetchAll();
foreach($query as $user){
print_r($user);
}
}
}
ものの、以下の結果である:
配列([id] => 1 [username] => araguera [password] =>パスワード[salt] => ksjdfiwe98ru2w98h)
なぜオブジェクトとしてではなく配列として返されるのですか?なぜなら、 "$ query-> username"のようなことをすることができるからです。あなたが使用することができます
$res = $query->fetchAll(\PDO::FETCH_OBJ);
そして場合には、あなたは(1行を取得するために)fetch
を使用したい:
どこかのフェッチモードが配列として設定されているため、明らかです。 –
そしてそれをオブジェクトに変更する方法を教えていただけますか? –
http://php.net/manual/en/pdostatement.fetchall.php –