PHP反向存储过程功能?

问题描述 投票:0回答:1

假设我在变量中有以下查询:

$sql = "select id, salary, fname, lname from users where id = ? and salary > ?";

和这样的数组:

$params = array (
  0 => '38765',
  1 => '4000');

我想知道是否有一个简单的内置PHP来替换“?”在查询中获取以下结果:

"select id, salary, fname, lname from users where id = '38765' and salary > '4000' ";

查询将不会被执行,这更像是一个字符串操作问题而不是sql一个。

这和我一样接近,但看起来PHP可能会为它构建一些东西:

foreach ($params as $param){
    $pos = strpos($sql, '?');
    $sql = substr_replace($sql, "'".$param."'", $pos, 1);
}
php mysql sql
1个回答
1
投票

就在这里。

从php.net中查看此代码示例

$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET['name']))) {
  while ($row = $stmt->fetch()) {
    print_r($row);
  }
}

http://php.net/manual/en/pdo.prepared-statements.php#example-1016

但是这种变体要求你使用PDO

有关更多详细信息,请参阅此链接:http://php.net/manual/en/book.pdo.php

© www.soinside.com 2019 - 2024. All rights reserved.