Zend Framework конвертирует NULL-строку в фактическое NULL-значение для MySql - PullRequest
4 голосов
/ 25 января 2010

Почему-то при импорте данных в mysql с использованием многострочной вставки с функцией execute () было добавлено много строк со строкой NULL для некоторых столбцов. Как я могу преобразовать эти строки NULL в значения MySQL NULL, чтобы при отображении данных можно было проверять наличие пустых значений с помощью is_null () в php.

Как мне избежать этой проблемы? Я использовал функцию quote () для каждого фрагмента данных. Была ли это проблема с использованием цитаты на пустых полях? Я импортировал CSV-файл.

спасибо

1 Ответ

9 голосов
/ 25 января 2010

Чтобы вставить SQL NULL или любое другое выражение, вы можете использовать объект Zend_Db_Expr. Даже если вы используете quote(), ZF пропускает эти объекты без кавычек.

$null = new Zend_Db_Expr("NULL");

$table = new MyTable();
$table->insert(123, "abc", $null);

Обратите внимание: поскольку использование Zend_Db_Expr позволяет обойти как цитирование, так и параметризацию, вы отвечаете за защиту от внедрения SQL.


Это касается вашего вопроса, но рассмотрите LOAD DATA INFILE, если вы загружаете файл CSV. Это может быть в 20 раз быстрее, чем даже при использовании многорядной INSERT.

...