我有程序员使用这个SQL:
$sql = "
INSERT INTO
`{$database}`.`table`
(
`my_id`,
`xType`,
`subType`,
`recordID`,
`textarea`
)
VALUES
(
{$my_id},
?xType,
?subType,
{$recordID},
?areaText
) ";
我的问题是为什么他在价值观之前使用?
?我怎样才能看到有什么价值?我做了echo
,并将?xType
显示为?xType
。没有价值。什么在SQL中代表什么?
答案 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)
这是另一个疯狂的想法 - 你正在维护别人的代码,对吧?它真的可以工作/运行吗?如果没有,他是否输入了问号,因为他不确定该参数或参数的名称?有时我会放入不能编译的东西,因为我知道它会强迫我回去后再弄清楚(所以我不会忘记)。