获取数据库中的相关信息(Doctrine)
作者QQ:67065435 QQ群:821635552
本站内容全部为作者原创,转载请注明出处!
<?php
# 获取单个对象形式结果,用法1
use DBBundle\Entity\User;
$object = $this
->getDoctrine()
->getManager('default')
->getRepository(User::class)
->findOneBy(['user_id' => 1], ["user_id" => "ASC"]);
//->find($user_id);
# 获取单个对象形式结果,用法2
$object = $this
->getDoctrine()
->getManager('default')
->getRepository('DBBundle:User')
->findOneBy(['user_id' => 1], ["user_id" => "ASC"]);
//->find($user_id);
# 通过方法获取数组形式结果
$orm = $this
->getDoctrine()
->getManager('default');
$query = $orm
->getRepository('DBBundle:User')
->createQueryBuilder('p')
->select('p.userId,p.name')
->where('p.userId = :user_id')
->setParameter('user_id', 1)
//)->setParameters(['user_id'=>1])
->orderBy('p.userId', 'ASC')
->setFirstResult(0)
->setMaxResults(10)
->getQuery()
->getArrayResult();
# 通过语句获取数组形式结果
$orm = $this
->getDoctrine()
->getManager('default');
$query = $orm
->createQuery(
'SELECT
p.userId, p.name
FROM
DBBundle:User p
WHERE
p.userId = :user_id
ORDER BY
p.userId
ASC'
)->setParameter('user_id', 1)
//)->setParameters(['user_id'=>1])
->orderBy('p.userId', 'ASC')
->setFirstResult(0)
->setMaxResults(10)
->getArrayResult();
# 通过语句连表查询获取数组结果
$orm = $this
->getDoctrine()->getManager('default');
$query = $orm
->createQuery(
'SELECT
p.userId, p.name
AS
id
FROM
DBBundle:User1 p
INNER JOIN
DBBundle:User2 q
WHERE
p.userId = q.userId
AND
p.userId = :user_id
AND
q.time > :time
ORDER BY
p.userId
ASC'
)->setParameter('user_id', 1)
->setParameter('time', $time)
//)->setParameters(['user_id' => 1, 'time' => $time])
->getArrayResult();
查询数据库中相关信息(PDO)
<?php
# 注意:如果用'fetch'代替'fetchAll'则返回的是一维数组,且是第一条结果
# 最简单的方式执行
$this->dbh = $this->get('database_connection');
$sql = <<<SQL
SELECT
*
FROM
`user`
WHERE
`user`.id = 1
SQL;
$result = $this->dbh->fetchAll($sql);
unset($this->dbh);
# 查询1条结果
$result = $this->dbh->fetch($sql);
unset($this->dbh);
# 按序绑定参数执行
$this->dbh = $this->get('database_connection');
$sql = <<<SQL
SELECT
*
FROM
`user`
WHERE
`user`.id IN (?,?,?,?,?)
SQL;
$sth = $this->dbh->prepare($sql);
$sth->bindValue(1, 1);
$sth->bindValue(2, 2);
$sth->bindValue(3, 3);
$sth->bindValue(4, 4);
$sth->bindValue(5, 5);
$sth->execute();
$res = $sth->fetchAll();
unset($sth);
unset($this->dbh);
# 查询1条结果
$res = $sth->fetch();
unset($sth);
unset($this->dbh);
# 按key绑定参数执行
$this->dbh = $this->get('database_connection');
$sql = <<<SQL
SELECT
*
FROM
`user`
WHERE
`user`.id = :id
SQL;
$id = 10000;
$sth = $this->dbh->prepare($sql);
$sth->bindParam('id', $id);
$sth->execute();
$res = $sth->fetchAll();
unset($sth);
unset($this->dbh);
# 查询1条结果
$res = $sth->fetch();
unset($sth);
unset($this->dbh);