dilyin has asked for the wisdom of the Perl Monks concerning the following question:
Does DBI/DBD-MySQL support named placeholders?
from cpan:
Some drivers also allow placeholders like :name and :N (e.g., :1, :2, and so on) in addition to ?, but their use is not portable.
code like this:
It doesn't work, maybe incorrect syntax.$sth = $dbh->prepare('SELECT * FROM modules WHERE module LIKE :m A +ND code LIKE :c'); $sth->bind_param(':m', "%v%"); $sth->bind_param(':c', "%x%"); $rv = $sth->execute;
? placeholders becomes total mess if you have more then 30 of them and have to calculate order
I found 2003 year post here that tells that DBD-mysql doesn't support named placeholders. Did anything change?
PHP/PDO does have named placeholders:<?php /* Execute a prepared statement by binding PHP variables */ $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(); ?>
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: DBI Named Placeholders
by Anonymous Monk on Jan 14, 2011 at 14:55 UTC | |
|
Re: DBI Named Placeholders
by trwww (Priest) on Jan 14, 2011 at 18:00 UTC | |
|
Re: DBI Named Placeholders
by Anonymous Monk on Jan 14, 2011 at 14:54 UTC |