function update_schema_unaccented_name($Conf) { if (!Dbl::ql("alter table ContactInfo add `unaccentedName` varchar(120) NOT NULL DEFAULT ''")) { return false; } $result = Dbl::ql("select contactId, firstName, lastName from ContactInfo"); if (!$result) { return false; } $qs = $qv = array(); while ($result && ($x = $result->fetch_row())) { $qs[] = "update ContactInfo set unaccentedName=? where contactId={$x['0']}"; $qv[] = Text::unaccented_name($x[1], $x[2]); } Dbl::free($result); $q = Dbl::format_query_apply($Conf->dblink, join(";", $qs), $qv); if (!$Conf->dblink->multi_query($q)) { return false; } do { if ($result = $Conf->dblink->store_result()) { $result->free(); } } while ($Conf->dblink->more_results() && $Conf->dblink->next_result()); return true; }
global $Now; $Now = gmmktime(0, 0, 0, 5, 24, 2013); $sig = $s3d->signature("https://examplebucket.s3.amazonaws.com/test.txt", array("Range" => "bytes=0-9")); xassert_eqq($sig["signature"], "f0e8bdb87c964420e857bd35b5d6ed310bd44f0170aba48dd91039c6036bdb41"); $sig = $s3d->signature("https://examplebucket.s3.amazonaws.com/test%24file.text", array("x-amz-storage-class" => "REDUCED_REDUNDANCY", "method" => "PUT", "Date" => "Fri, 24 May 2013 00:00:00 GMT"), "Welcome to Amazon S3."); xassert_eqq($sig["signature"], "98ad721746da40c64f1a55b78f14c238d841ea1380cd77a1b5971af0ece108bd"); $sig = $s3d->signature("https://examplebucket.s3.amazonaws.com?lifecycle", array()); xassert_eqq($sig["signature"], "fea454ca298b7da1c68078a5d1bdbfbbe0d65c699e0f91ac7a200a0136783543"); // Dbl::format_query tests xassert_eqq(Dbl::format_query("Hello"), "Hello"); xassert_eqq(Dbl::format_query("Hello??"), "Hello?"); xassert_eqq(Dbl::format_query("Hello????"), "Hello??"); xassert_eqq(Dbl::format_query("select ?, ?, ?, ?s, ?s, ?s, ?", 1, "a", null, 2, "b", null, 3), "select 1, 'a', NULL, 2, b, , 3"); xassert_eqq(Dbl::format_query_apply("select ?, ?, ?, ?s, ?s, ?s, ?", array(1, "a", null, 2, "b", null, 3)), "select 1, 'a', NULL, 2, b, , 3"); xassert_eqq(Dbl::format_query_apply("select ?{2}, ?{1}, ?, ?s, ?s, ?s, ?", array(1, "a", null, 2, "b", null, 3)), "select 'a', 1, NULL, 2, b, , 3"); xassert_eqq(Dbl::format_query_apply("select ?{2}, ?{1}, ?{ab}, ?{2}s, ?{1}s, ?{ab}s, ?", array(1, "a", "ab" => "Woah", "Leftover")), "select 'a', 1, 'Woah', a, 1, Woah, 'Leftover'"); // Csv::split_lines tests xassert_array_eqq(CsvParser::split_lines(""), array()); xassert_array_eqq(CsvParser::split_lines("\r"), array("\r")); xassert_array_eqq(CsvParser::split_lines("\n"), array("\n")); xassert_array_eqq(CsvParser::split_lines("\r\n"), array("\r\n")); xassert_array_eqq(CsvParser::split_lines("\r\r\n"), array("\r", "\r\n")); xassert_array_eqq(CsvParser::split_lines("\r\naaa"), array("\r\n", "aaa")); xassert_array_eqq(CsvParser::split_lines("\na\r\nb\rc\n"), array("\n", "a\r\n", "b\r", "c\n")); // random PHP behavior tests if (PHP_MAJOR_VERSION >= 7) { xassert_eqq(substr("", 0, 1), ""); } else { xassert_eqq(substr("", 0, 1), false); } $s = "";