Php 带问号和冒号的MySQL语句
我试图破译PHP程序中执行Mysql查询的特定语句。查询有?:和?在里面。有什么功能Php 带问号和冒号的MySQL语句,php,mysql,pdo,Php,Mysql,Pdo,我试图破译PHP程序中执行Mysql查询的特定语句。查询有?:和?在里面。有什么功能 $data = db_get_field("SELECT data FROM ?:order_data WHERE order_id = ?i AND type = 'A'", $order_id); 谢谢你的帮助 Chris它们看起来像是准备好的语句的占位符。您提供了?,稍后将在其中提供实际值。从PHP文档中考虑这个例子: $stmt = $dbh->prepare("INSERT INTO REGI
$data = db_get_field("SELECT data FROM ?:order_data WHERE order_id = ?i AND type = 'A'", $order_id);
谢谢你的帮助
Chris它们看起来像是准备好的语句的占位符。您提供了
?
,稍后将在其中提供实际值。从PHP文档中考虑这个例子:
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);
资料来源:
您的特定示例似乎来自。例如,根据他们的文档?i
强制将传递到占位符中的值转换为整数(这与工作方式类似)
在上述情况下,$number
被视为整数。如果我尝试将字符串传递到该插槽中,我会得到非常不同的结果:
$number = "completed";
echo sprintf( "I have %d tasks.", $number );
// Outputs "I have 0 tasks."
请注意,我的类型不匹配,因此在输出中替换了0
已完成的
总之,这些是占位符。它们看起来像是准备好的语句的占位符。您提供了?
,稍后将在其中提供实际值。从PHP文档中考虑这个例子:
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);
资料来源:
您的特定示例似乎来自。例如,根据他们的文档?i
强制将传递到占位符中的值转换为整数(这与工作方式类似)
在上述情况下,$number
被视为整数。如果我尝试将字符串传递到该插槽中,我会得到非常不同的结果:
$number = "completed";
echo sprintf( "I have %d tasks.", $number );
// Outputs "I have 0 tasks."
请注意,我的类型不匹配,因此在输出中替换了0
已完成的
总之,这些是占位符。字符?
是:
标识符,用于形成参数化查询。稍后将值绑定到变量,引擎将执行多个值的查询。这会更快,因为查询由服务器编译一次,而不是为每个变量=值集编译。字符?
是:
标识符,用于形成参数化查询。稍后将值绑定到变量,引擎将执行多个值的查询。这会更快,因为查询由服务器编译一次,而不是为每个变量=值集编译。db\u get\u field
不是内置函数。查找定义。许可证是付费的。只是好奇?:的用途。db\u get\u字段
不是内置函数。查找定义。许可证是付费的。只是好奇?:的用途。这很奇怪,尽管?
是一个匿名占位符,:order\u data
可能是一个命名占位符。我从来没有在查询中看到这两个元素像这样混合。@MarcB根据,不支持两者混合。我认为OPs代码背后还有其他一些东西。这很奇怪,尽管?
是一个匿名占位符,:order\u data
可能是一个命名占位符。我从来没有在查询中看到这两个元素像这样混合。@MarcB根据,不支持两者混合。我认为《行动纲领》的幕后还有其他的事情。