Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.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
Php 带问号和冒号的MySQL语句_Php_Mysql_Pdo - Fatal编程技术网

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

我试图破译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 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根据,不支持两者混合。我认为《行动纲领》的幕后还有其他的事情。