什么'?'代表SQL?

时间:2010-06-15 21:28:45

标签: sql mysql named-parameters

我有程序员使用这个SQL:

$sql = "  
   INSERT INTO  
    `{$database}`.`table`  
   (  
    `my_id`,  
    `xType`,  
    `subType`,  
    `recordID`,  
    `textarea`  
   )  
   VALUES  
   (  
    {$my_id},  
    ?xType,  
    ?subType,  
    {$recordID},  
    ?areaText  
   ) ";  

我的问题是为什么他在价值观之前使用??我怎样才能看到有什么价值?我做了echo,并将?xType显示为?xType。没有价值。什么在SQL中代表什么?

4 个答案:

答案 0 :(得分:9)

对我来说,这看起来像named parameter

答案 1 :(得分:1)

John Weldon在这种情况下是正确的,但我看过sql如下所示?意味着它是值的占位符。 sql附带的参数等于sql中的?的数量。在这种情况下,它意味着从参数中提取值并将其转义。

INSERT INTO  
    `{$database}`.`table`  
   (  
    `my_id`,  
    `xType`,  
    `subType`,  
    `recordID`,  
    `textarea`  
   )  
   VALUES  
   (  
    ?,  
    ?,  
    ?,  
    ?,  
    ? 
   ) ";  

答案 2 :(得分:-1)

看起来是一个由某种解析器解析的占位符。可能他们处于某种框架之下。

答案 3 :(得分:-1)

这是另一个疯狂的想法 - 你正在维护别人的代码,对吧?它真的可以工作/运行吗?如果没有,他是否输入了问号,因为他不确定该参数或参数的名称?有时我会放入不能编译的东西,因为我知道它会强迫我回去后再弄清楚(所以我不会忘记)。