Mysqli параметризация с именованными значениями и конкретными типами - PullRequest
1 голос
/ 20 ноября 2011

Я изучаю параметризацию и вижу, что некоторые запросы используют это обозначение :varname в подготовленном запросе, а затем связывают его так: bindParam(':varname', $varvalue).

Затем я вижу некоторые, где они просто используют ? в готовящемся запросе, а затем что-то вроде: bindParams('sd', $stringvalue, $doublevalue).

Кажется, что последняя версия, по крайней мере, до некоторой степени, "безопаснее", так как она вызывает / проверяет типы (строки / двойники/ целые числа / блобы).Тем не менее, мне больше нравится первая запись, и она может работать лучше для некоторых абстрактных вещей, которые я делаю, поскольку вопросительные знаки не всегда будут иметь очевидный порядок / позицию.

Любая средняя точка илиэто один или другой?

1 Ответ

0 голосов
/ 01 декабря 2011

Вы не можете использовать оба метода одновременно, потому что один связан с классом MYSQLi, а другой - с классом PDO, что является двумя разными вещами.

http://php.net/manual/de/mysqli-stmt.bind-param.php

http://de2.php.net/manual/en/pdostatement.bindparam.php

Первые обозначения, которые вы предпочитаете, могут использоваться только при подключении к базе данных через класс PDO.И как вы можете видеть на связанных сайтах: с помощью этого метода можно также определить тип данных ...

...