Proper MySQLi parameterized query syntax from http://php.net/manual/en/mysqli.quickstart.prepared-statements.php:
$stmt = $mysqli->prepare(\"INSERT INTO test(
MYSQLi
doesn't support named parameters for two main reasons:
PDO
, does - and there is no point re-inventing the wheel To elaborate on point 1: mysqli
, despite its many downfalls when compared to PDO
, becomes easily comparable with a good wrapper - that is, named parameters (among others) are supported by the wrapper rather than mysqli
itself. This is by design for one sole reason:
Mysqli
is designed to be a fast and flexible library. If the developers incorporated many more features into the base library, it becomes, counter intuitively, less flexible and requires longer load/execution times.
Both mysqli
and pdo
were released with PHP 5 (PDO with version 5.3, I believe) and as such are intended for different uses.
You want faster execution times? use mysqli
without a wrapper. You want named parameters? use PDO
or build a mysqli
wrapper to handle such - but be warned, this will hinder your execution times.