gpt4 book ai didi

php - 带问号和冒号的 MySQL 语句

转载 作者:行者123 更新时间:2023-11-29 00:39:10 25 4
gpt4 key购买 nike

我正在尝试破译执行 Mysql 查询的 PHP 程序中的特定语句。查询有 ?: 和 ?在里面。有什么作用?

$data = db_get_field("SELECT data FROM ?:order_data WHERE order_id = ?i AND type = 'A'", $order_id);

感谢您的帮助。

克里斯

最佳答案

它们看起来像是准备好的语句的占位符。您提供 ? 稍后您将在其中提供实际值。考虑 PHP 文档中的这个示例:

$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);

来源:http://php.net/manual/en/pdo.prepared-statements.php

您的特定示例似乎来自 CS-Cart .例如,根据他们的文档,?i 强制将传递到该占位符的值转换为整数(这类似于 sprintf 的工作方式)。

$number = 9;
echo sprintf( "I have %d tasks.", $number );
// Outputs "I have 9 tasks."

在上述情况下,$number 被视为整数。如果我试图将一个字符串传递到那个槽中,我会得到非常不同的结果:

$number = "completed";
echo sprintf( "I have %d tasks.", $number );
// Outputs "I have 0 tasks."

请注意我的类型如何不匹配,因此 0 替换了输出中的 completed

底线,这些是占位符。

关于php - 带问号和冒号的 MySQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13037364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com