Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用条令2和不同结果的MySQL查询_Mysql_Doctrine Orm_Doctrine - Fatal编程技术网

使用条令2和不同结果的MySQL查询

使用条令2和不同结果的MySQL查询,mysql,doctrine-orm,doctrine,Mysql,Doctrine Orm,Doctrine,事情是这样的 我正在使用Doctrine 2.5查询数据库,我想使用Doctrine的createQuery()方法来完成。原因是第2条原则以camelCase的方式对结果进行分析,我的列名都带有下划线。由于大多数简单查询都可以与createQuery(甚至是查询生成器)配合使用,因此我想将所有原生MySQL查询移动到Doctrine的DQL(以获得camelCase中的所有结果,因此这是一个标准化的结果)。或者你们可以教我如何让条令2以数据库中列的相同方式返回结果。。。xD 我有以下疑问: $

事情是这样的

我正在使用Doctrine 2.5查询数据库,我想使用Doctrine的createQuery()方法来完成。原因是第2条原则以camelCase的方式对结果进行分析,我的列名都带有下划线。由于大多数简单查询都可以与createQuery(甚至是查询生成器)配合使用,因此我想将所有原生MySQL查询移动到Doctrine的DQL(以获得camelCase中的所有结果,因此这是一个标准化的结果)。或者你们可以教我如何让条令2以数据库中列的相同方式返回结果。。。xD

我有以下疑问:

$sql = '
     SELECT sp.*, so.user_id
     FROM shop_order so
     INNER JOIN shop_payment sp ON(so.payment_id=sp.id)
     WHERE so.id = '.$orderID;
$stmt = $em->getConnection()->prepare($sql);
$stmt->execute();
$result = $stmt->fetch();
这将导致以下结果:

Array
(
    [id] => 14
    [payment_type_id] => 2
    [flag] => boleto_bb
    [tid] => 
    [billet] => 1
    [parcel_quantity] => 
    [cart_name_holder] => 
    [cart_date_holder] => 1999-12-01
    [cart_number_holder] => 0
    [datecreated] => 2017-08-30 14:51:25
    [dateupdate] => 2017-08-30 16:36:18
    [status] => 2
    [user_id] => 16
)
Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [id] => 14
                    [paymentTypeId] => 2
                    [flag] => boleto_bb
                    [tid] => 
                    [billet] => 1
                    [parcelQuantity] => 
                    [cartNameHolder] => 
                    [cartDateHolder] => DateTime Object
                        (
                            [date] => 1999-12-01 00:00:00.000000
                        )
                    [cartNumberHolder] => 0
                    [datecreated] => DateTime Object
                        (
                            [date] => 2017-08-30 14:51:25.000000
                        )
                    [dateupdate] => DateTime Object
                        (
                            [date] => 2017-08-30 16:36:18.000000
                        )
                    [status] => 2
                )
            [userId] => 16
        )
)
但如果我这样做:

$query = $em->createQuery('
    SELECT sp, so.userId
    FROM ShopOrder so
    INNER JOIN ShopPayment sp WITH (so.paymentId = sp.id)
    WHERE so.id = ' . $orderID);
$result = $query->getArrayResult();
我得到以下结果:

Array
(
    [id] => 14
    [payment_type_id] => 2
    [flag] => boleto_bb
    [tid] => 
    [billet] => 1
    [parcel_quantity] => 
    [cart_name_holder] => 
    [cart_date_holder] => 1999-12-01
    [cart_number_holder] => 0
    [datecreated] => 2017-08-30 14:51:25
    [dateupdate] => 2017-08-30 16:36:18
    [status] => 2
    [user_id] => 16
)
Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [id] => 14
                    [paymentTypeId] => 2
                    [flag] => boleto_bb
                    [tid] => 
                    [billet] => 1
                    [parcelQuantity] => 
                    [cartNameHolder] => 
                    [cartDateHolder] => DateTime Object
                        (
                            [date] => 1999-12-01 00:00:00.000000
                        )
                    [cartNumberHolder] => 0
                    [datecreated] => DateTime Object
                        (
                            [date] => 2017-08-30 14:51:25.000000
                        )
                    [dateupdate] => DateTime Object
                        (
                            [date] => 2017-08-30 16:36:18.000000
                        )
                    [status] => 2
                )
            [userId] => 16
        )
)

如何从createQuery方法中获得第一个结果?

您知道查询现在容易受到SQL注入的攻击吗?您的确切意思是什么?