Skip to content

Commit 0dbd142

Browse files
author
Ivan Kerin
committed
Correctly represent null values
1 parent d0cafb2 commit 0dbd142

File tree

3 files changed

+5
-3
lines changed

3 files changed

+5
-3
lines changed

src/Openbuildings/DBFixtures/Fixture.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public function dump()
108108

109109
foreach ($row as $column)
110110
{
111-
$values[] = $pdo->quote($column);
111+
$values[] = is_null($column) ? 'NULL' : $pdo->quote($column);
112112
}
113113

114114
$sql .= "INSERT INTO `{$table}` VALUES (".join(',', $values). ");\n";

tests/test_data/database.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
DROP TABLE IF EXISTS `table1`;
2-
CREATE TABLE `table1` (`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL, `description` varchar(255) NOT NULL, `price` decimal(10, 2) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uniq_name` (`name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2+
CREATE TABLE `table1` (`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `name` varchar(32) NULL, `description` varchar(255) NOT NULL, `price` decimal(10, 2) NULL, PRIMARY KEY (`id`), UNIQUE KEY `uniq_name` (`name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
33
DROP TABLE IF EXISTS `table2`;
4-
CREATE TABLE `table2` (`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL, `description` varchar(255) NOT NULL, `price` decimal(10, 2) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `uniq_name` (`name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
4+
CREATE TABLE `table2` (`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `name` varchar(32) NULL, `description` varchar(255) NOT NULL, `price` decimal(10, 2) NULL, PRIMARY KEY (`id`), UNIQUE KEY `uniq_name` (`name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

tests/tests/DatabaseTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,14 @@ public function test_connect()
2020

2121
$database->pdo()->exec('INSERT INTO table1 SET id = 1, name = "test1", description = "test test", price = 0.32');
2222
$database->pdo()->exec('INSERT INTO table1 SET id = 2, name = "test2", description = "test test2", price = 0.11');
23+
$database->pdo()->exec('INSERT INTO table1 SET id = 3, name = NULL, description = "", price = NULL');
2324

2425
$dumped = $database->dump();
2526

2627
$expected = <<<DUMPED
2728
INSERT INTO `table1` VALUES ('1','test1','test test','0.32');
2829
INSERT INTO `table1` VALUES ('2','test2','test test2','0.11');
30+
INSERT INTO `table1` VALUES ('3',NULL,'',NULL);
2931
3032
DUMPED;
3133

0 commit comments

Comments
 (0)