据我所知,MySQL 不直接在准备好的语句中支持命名占位符。所以,你不能写这样的东西:
SET @s = 'SELECT SQRT(POW(:a,2) + POW(:b,2)) AS hypotenuse';
PREPARE stmt2 FROM @s;
SET @a = 6;
SET @b = 8;
EXECUTE stmt2 USING @a, @b;
但是可以使用例如 PDO 来做到这一点。例如:
$a = 6;
$b = 8;
$stmt = $conn->dbh->prepare('SELECT SQRT(POW(:a,2) + POW(:b,2)) AS hypotenuse;');
$stmt = bindParam(':a', $a);
$stmt = bindParam(':b', $b);
$stmt->execute();
我想知道这是否也适用于 ADODB,因为我计划很快开始使用 ADODB。