Подготовьте связать пустое значение (не нулевое значение) - PullRequest
0 голосов
/ 29 декабря 2011

Мне нужно вставить пробел (foo="") в мою базу данных, но когда я это сделаю:

bindParam(':foo','',PDO::PARAM_STR);
bindParam(':bar','bang',PDO::PARAM_STR);

И посмотрите на таблицу, bar = bang, но fooнулевой.Я хочу, чтобы это было (пусто, а не пробел), а не null.

(мне нужно сделать это, потому что данные будут экспортированы в SPSS, а пустым будет null SPSS *)

Я просмотрел php.net /… / pdo.constants и остальную часть руководства, и я вижу только случаи вставки пробелов из-за странного выравнивания Венеры во времязатмение на третьей голубой луне.

РЕДАКТИРОВАТЬ : php 5.3, mysql 5.1 (и я не знаю версию драйвера)

Ответы [ 2 ]

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

вы пытались использовать bindvalue?

bindValue( ':foo', '', PDO::PARAM_STR );
bindValue( ':bar', 'bang', PDO::PARAM_STR );
0 голосов
/ 29 декабря 2011

PDO должен вставлять пустую строку (проверьте вашу базу данных напрямую, чтобы подтвердить это).Тем не менее, я думаю, что PDO будет приводить пустую строку к NULL при получении данных, если только вы не скажете этого.

Попробуйте это на дескрипторе PDO:

$pdo->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_NATURAL);
...