我正在尝试使用mysql编写的语句。我想知道是否有像我可以在sprintf或vsprintf中使用的数字占位符的可能性。例如。:
<?php $format = 'The %2$s contains %1$d monkeys'; echo sprintf($format, $num, $location); ?>
omqzjyyz1#
这取决于在php中使用哪个sql库。如果你使用 PDO 库可以使用命名参数,这与使用数字是一样的。http://php.net/manual/en/pdostatement.bindparam.php 举例说明:
PDO
$calories = 150; $colour = 'red'; $sth = $dbh->prepare('SELECT name, colour, calories FROM fruit WHERE calories < :calories AND colour = :colour'); $sth->bindParam(':calories', $calories, PDO::PARAM_INT); $sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12); $sth->execute();
在上面的例子中,由于参数是命名的,所以以何种顺序提供“卡路里”和“颜色”变量,或者它们出现在语句中的什么位置都无关紧要。然而 mysqli 不支持这一点,相反,您必须使用simple ? 占位符,然后按照要使用的确切顺序提供参数-请参阅http://php.net/manual/en/mysqli-stmt.bind-param.php.
mysqli
?
1条答案
按热度按时间omqzjyyz1#
这取决于在php中使用哪个sql库。
如果你使用
PDO
库可以使用命名参数,这与使用数字是一样的。http://php.net/manual/en/pdostatement.bindparam.php 举例说明:在上面的例子中,由于参数是命名的,所以以何种顺序提供“卡路里”和“颜色”变量,或者它们出现在语句中的什么位置都无关紧要。
然而
mysqli
不支持这一点,相反,您必须使用simple?
占位符,然后按照要使用的确切顺序提供参数-请参阅http://php.net/manual/en/mysqli-stmt.bind-param.php.