Как я вставляю Нулевые значения с помощью PDO?

Некоторые примечания:

  • JDO и JPA являются оба спецификациями, не реализациями.
  • идея - Вы, может подкачать реализации JPA, если Вы ограничиваете свой код для использования стандартного JPA только. (Так же для JDO.)
  • В спящем режиме, может использоваться в качестве одной такой реализации JPA.
  • Однако В спящем режиме, обеспечивает встроенный API, с функциями выше и кроме того JPA.

IMO, которые я рекомендовал бы, в спящем режиме.

<час>

были некоторые комментарии / вопросы о том, что необходимо сделать, если Вы потребность для использования В спящем режиме - определенные функции. Существует много способов посмотреть на это, но мой совет был бы:

  • , Если Вы не волнуетесь перспективой принудительного ассортимента поставщика, затем сделайте свой выбор между, в спящем режиме, и другой JPA и реализации JDO включая различный поставщик определенные расширения в Вашем принятии решений.

  • , Если Вы волнуетесь перспективой принудительного ассортимента поставщика, и Вы не можете использовать JPA, не обращаясь к поставщику определенные расширения, затем не используйте JPA. (Так же для JDO).

В действительности, Вам, вероятно, будет нужно к компромиссу , насколько Вы волнуетесь принудительным ассортиментом поставщика по сравнению с , насколько Вам нужны они поставщик определенные расширения.

И существуют другие факторы также, как то, как хорошо Вы / Ваши сотрудники знают соответствующие технологии, какого количества продукты будут стоить в лицензировании, и чьей истории Вы верите о том, что собирается произойти в будущем для JDO и JPA.

102
задан hjpotter92 11 June 2014 в 12:19
поделиться

2 ответа

Я только учусь PDO, но я думаю, вам нужно использовать bindValue , а не bindParam

bindParam принимает переменную для ссылки и не извлекает значение во время вызова bindParam . Я нашел это в комментарии к документации php:

bindValue(':param', null, PDO::PARAM_INT);

EDIT: PS У вас может возникнуть соблазн сделать это bindValue (': param', null, PDO :: PARAM_NULL);

132
ответ дан 24 November 2019 в 04:29
поделиться

При использовании bindParam () вы должны передать переменную, а не константу. Поэтому перед этой строкой вам нужно создать переменную и установить для нее значение null

$myNull = null;
$stmt->bindParam(':v1', $myNull, PDO::PARAM_NULL);

Вы получите такое же сообщение об ошибке, если попытаетесь:

$stmt->bindParam(':v1', 5, PDO::PARAM_NULL);
46
ответ дан 24 November 2019 в 04:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: