php-src/ext/mysql/tests/mysql_insert_id.phpt
Tjerk Anne Meesters e29302576c Reverted changes in connect.inc based on Ulf's feedback
- Moved the ini_set() entries into a separate script 'setupdefault.inc'
- Let mysql_affected_rows and mysql_insert_id test cases use the newly created script

With the ini_set() statements inside connect.inc, some test cases would be forced to 'undo' them in order to test other scenarios.

Tested on all three dev lines with and without passing db credentials. No changes detected.
2011-09-12 14:35:45 +00:00

72 lines
2.0 KiB
PHP

--TEST--
mysql_insert_id()
--SKIPIF--
<?php
require_once('skipif.inc');
require_once('skipifconnectfailure.inc');
?>
--FILE--
<?php
include "connect.inc";
include 'setupdefault.inc';
$tmp = NULL;
$link = NULL;
if (0 !== ($tmp = @mysql_insert_id()))
printf("[001] Expecting int/0, got %s/%s\n", gettype($tmp), $tmp);
if (NULL !== ($tmp = @mysql_insert_id($link)))
printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
if (!is_null($tmp = @mysql_insert_id($link, 'too many args')))
printf("[002a] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
require('table.inc');
if (0 !== ($tmp = mysql_insert_id($link)))
printf("[003] Expecting int/0, got %s/%s\n", gettype($tmp), $tmp);
if (!$res = mysql_query("SELECT id, label FROM test ORDER BY id LIMIT 1", $link)) {
printf("[004] [%d] %s\n", mysql_errno($link), mysql_error($link));
}
if (0 !== ($tmp = mysql_insert_id($link)))
printf("[005] Expecting int/0, got %s/%s\n", gettype($tmp), $tmp);
mysql_free_result($res);
// no auto_increment column
if (!$res = mysql_query("INSERT INTO test(id, label) VALUES (100, 'a')", $link)) {
printf("[006] [%d] %s\n", mysql_errno($link), mysql_error($link));
}
if (0 !== ($tmp = mysql_insert_id($link)))
printf("[007] Expecting int/0, got %s/%s\n", gettype($tmp), $tmp);
if (!$res = mysql_query("ALTER TABLE test MODIFY id INT NOT NULL AUTO_INCREMENT", $link)) {
printf("[008] [%d] %s\n", mysql_errno($link), mysql_error($link));
}
if (!$res = mysql_query("INSERT INTO test(label) VALUES ('a')", $link)) {
printf("[009] [%d] %s\n", mysql_errno($link), mysql_error($link));
}
if (0 === ($tmp = mysql_insert_id($link)))
printf("[010] Expecting int/not zero, got %s/%s\n", gettype($tmp), $tmp);
if ($tmp !== ($tmp2 = mysql_insert_id()))
printf("[011] Expecting %s/%s, got %s/%s\n",
gettype($tmp), $tmp,
gettype($tmp2), $tmp2);
mysql_close($link);
var_dump(mysql_insert_id($link));
print "done!";
?>
--CLEAN--
<?php
require_once("clean_table.inc");
?>
--EXPECTF--
Warning: mysql_insert_id(): %d is not a valid MySQL-Link resource in %s on line %d
bool(false)
done!