From 4a1c9be857a6d076ae9192a923b92b56fbb372d9 Mon Sep 17 00:00:00 2001 From: Andrey Hristov Date: Thu, 21 Nov 2013 21:14:42 +0200 Subject: [PATCH] Fix for Bug #66124 (mysqli under mysqlnd loses precision when bind_param with 'i') --- ext/mysqli/tests/bug66124.phpt | 101 +++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 ext/mysqli/tests/bug66124.phpt diff --git a/ext/mysqli/tests/bug66124.phpt b/ext/mysqli/tests/bug66124.phpt new file mode 100644 index 0000000000..8c0027f9e6 --- /dev/null +++ b/ext/mysqli/tests/bug66124.phpt @@ -0,0 +1,101 @@ +--TEST-- +Bug #66124 (mysqli under mysqlnd loses precision when bind_param with 'i') +--SKIPIF-- + +--FILE-- +query($table_drop); +$link->query($table_create); + +$stmt = $link->prepare($table_insert); +if (!$stmt) { + printf("Can't prepare\n"); + exit(1); +} + +echo "Using 'i':\n"; +$stmt->bind_param('i', $id); + +if ($stmt->execute()){ + echo "insert id:{$id}=>{$stmt->insert_id}\n"; +} else { + printf("Can't execute\n"); + exit(1); +} + + +$result = $link->query($table_select); + +if ($result){ + while ($row = $result->fetch_assoc()) { + echo "fetch id:{$row['id']}\n"; + } +} else { + printf("Can't select\n"); + exit(1); +} + +$stmt->close(); + +$link->query($table_drop); +$link->query($table_create); + + +$stmt = $link->prepare($table_insert); +$stmt->bind_param('s', $id); + +echo "Using 's':\n"; + +if ($stmt->execute()){ + echo "insert id:{$id}\n"; +} else{ + printf("Can't execute\n"); + exit(1); +} + +$result = $link->query($table_select); + +if ($result){ + while ($row = $result->fetch_assoc()) { + echo "fetch id:{$row['id']}\n"; + } +} else { + printf("Can't select\n"); + exit(1); +} + +$link->close(); +?> +done +--EXPECTF-- +Using 'i': +insert id:1311200011005001566=>1311200011005001566 +fetch id:1311200011005001566 +Using 's': +insert id:1311200011005001566 +fetch id:1311200011005001566 +done \ No newline at end of file -- 2.49.0