从
http://php.net/manual/en/mysqli.quickstart.prepared-statements.php开始正确的MysqLi参数化查询语法:
原文链接:https://www.f2er.com/php/137233.html$stmt = $MysqLi->prepare("INSERT INTO test(id) VALUES (?)"); $stmt->bind_param("i",$id);
但从来没有像:
$stmt = $MysqLi->prepare("INSERT INTO test(id) VALUES (:id_value)"); $stmt->bind_param("i","id_value",$id);
在我看来,命名参数替换是在API级别实现的合理特性.我很惊讶MysqLi只在库中实现了未命名的参数.
有正当理由吗?对我来说没有意义,看看PDO,DQL,ORM如何在他们的查询中采用命名参数.
我希望MysqLi开发人员不会遇到“我们懒惰而且不想要”的情况.我相信一定有充分的理由,我正在寻找这个理由,或者寻找理由. MysqLi扩展库中未实现命名参数的原因.