Doctrine ? 理论上的质疑意味着什么?
我想知道这个问题是什么意思:Doctrine ? 理论上的质疑意味着什么?,doctrine,Doctrine,我想知道这个问题是什么意思: $blogPost = Doctrine_Query::create()->from('BlogPost p')->where('p.slug = ?', 'doctrine-released')->execute(); 有人能解释一下吗?给我 谢谢我猜,但我敢打赌,?只是表示“这里有一个变量,我稍后会填充它”的一种方式,就像其他SQL变体中的普通绑定一样。在您的示例中,这意味着?在执行时被扩展为“发布原则”。换句话说,查询变成,其中p.slug
$blogPost = Doctrine_Query::create()->from('BlogPost p')->where('p.slug = ?', 'doctrine-released')->execute();
有人能解释一下吗?给我
谢谢我猜,但我敢打赌,
?
只是表示“这里有一个变量,我稍后会填充它”的一种方式,就像其他SQL变体中的普通绑定一样。在您的示例中,这意味着?
在执行时被扩展为“发布原则”。换句话说,查询变成,其中p.slug='doctrine released'
我猜,但我敢打赌?
只是一种表示“这里有一个变量,我稍后将填充它”的方式,就像其他SQL变体中的普通绑定一样。在您的示例中,这意味着?
在执行时被扩展为“发布原则”。换句话说,查询变成,其中p.slug='doctrine released'
如果有一个变量作为参数,则不需要以其他方式使用'?'
例如:
$blogPost=Doctrine_Query::create()->from('blogPost p')->其中('p.slug=?',$Doctrine released)->execute()
如果字符串作为参数
$blogPost=Doctrine_Query::create()->from('blogPost p')->其中('p.slug'='Doctrine released')->execute() 如果有一个变量作为参数,则不需要使用“?”来表示其他方面 例如: $blogPost=Doctrine_Query::create()->from('blogPost p')->其中('p.slug=?',$Doctrine released)->execute() 如果字符串作为参数
$blogPost=Doctrine_Query::create()->from('blogPost p')->其中('p.slug'='Doctrine released')->execute() 但是为什么不直接写p.slug='doctrine released'。这有什么好处?因为你可以利用事先准备好的陈述的优点。检查一下:在这个确切的例子中,似乎不值得使用预先准备好的语句。但是,当您的数据库有数千个用户时,他们都使用完全相同的prepared语句,但使用不同的绑定变量执行时,您将节省大量的分析时间和内存。绑定到prepared语句的参数也会被转义,从而使代码更安全。Doctrine缓存其DQL查询,尽管在小规模的实现中不那么引人注目,但使用准备好的语句仍然是值得的(因为它很容易),因为这样做可以判断一个查询何时与另一个查询相同,只是更改了一个属性值,因此可以重复使用/优化等。但是为什么不只写p.slug='doctrine released'。这有什么好处?因为你可以利用事先准备好的陈述的优点。检查一下:在这个确切的例子中,似乎不值得使用预先准备好的语句。但是,当您的数据库有数千个用户时,他们都使用完全相同的prepared语句,但使用不同的绑定变量执行时,您将节省大量的分析时间和内存。绑定到prepared语句的参数也会被转义,从而使代码更安全。Doctrine缓存其DQL查询,尽管在小规模的实现中不那么引人注目,但使用准备好的语句仍然是值得的(因为它很容易),因为这样做可以判断一个查询何时与另一个查询相同,只是更改了一个属性值,因此可以重用/优化等。