Doctrine always tries to match your results with default objects.
You can use the prepared report without having to provide a comparison of the results:
get connection:
$connection = $em->getConnection();
preparation of instructions and its implementation:
$statement = $connection->prepare(
'SELECT a FROM hs_hr_employee a WHERE a.emp_number = :emp'
);
$statement->bindValue('emp', $emp);
$statement->execute();
$result = $statement->fetchAll('EAGER');
$affected_rows = $statement->rowCount();
This is quite expressive. See Examples below for shorter options.
Alternative:
Use the Source SQL query to display the results.
The extended example shows how to rename columns in an array of results.
$rsm = new ResultSetMapping;
$rsm->addScalarResult('n', 'nickname');
$rsm->addScalarResult('f', 'muchachos');
$query = $em->createNativeQuery(
'
SELECT
users.name as n
COUNT(user.friends) as f
WHERE
users.name = :username_parameter
FROM
user_table_name users
',
$rsm
);
$query->setParameter('username_parameter', $username);
$result = $query->getSingleResult(\Doctrine\ORM\AbstractQuery::HYDRATE_ARRAY);
: ( + )
$result = $connection->executeQuery(
'SELECT a FROM hs_hr_employee a WHERE a.emp_number = ?'
array($emp)
);
$affected_rows = $connection->executeUpdate(
'DELETE FROM hs_hr_employee a WHERE a.emp_number = ?',
array($emp)
);
$connection->fetchAll(
'SELECT a FROM hs_hr_employee a WHERE a.emp_number = ?',
array($emp)
);
$connection->fetchAssoc(
'SELECT a FROM hs_hr_employee a WHERE a.emp_number = ?',
array($emp)
);
$connection->fetchArray(
'SELECT a FROM hs_hr_employee a WHERE a.emp_number = ?',
array($emp)
);
( INSERT, UPDATE DELETE)
// DELETE FROM user WHERE id = ? (1)
$conn->delete('user', array('id' => 1));
// INSERT INTO user (username) VALUES (?) (nifr)
$conn->insert('user', array('username' => 'nifr'));
// UPDATE user (username) VALUES (?) WHERE id = ? (nifr, 1)
$conn->update('user', array('username' => 'nifr'), array('id' => 1));
: