ID: 48151
Updated by: [email protected]
Reported By: mail at danhofnann dot com
-Status: Open
+Status: Feedback
Bug Type: PDO related
Operating System: Linux
PHP Version: 5.2.9
New Comment:
Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves.
A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external
resources such as databases, etc. If the script requires a
database to demonstrate the issue, please make sure it creates
all necessary tables, stored procedures etc.
Please avoid embedding huge scripts into the report.
Previous Comments:
------------------------------------------------------------------------
[2009-05-05 07:26:45] mail at danhofnann dot com
Description:
------------
If you do an OUTER LEFT JOIN and set PDO FetchALL to PDO::FETCH_ASSOC,
any primary keys you used in the OUTER LEFT JOIN will be set to a blank
if there are no records returned in the JOIN.
If we are joining using a field called "product_id" from a product
table to an image table using an outer left join, and no records exist
for that "product_id" in the image table, the product id comes back as
blank in the resulting array
Reproduce code:
---------------
//query the product table and join to the image table and return any
images, if we have any, for each product. Assume the image table
contains no records
$sql = "SELECT * FROM product, image
LEFT OUTER JOIN image ON (product.product_id = image.product_id)";
$array = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($array);
?>
Expected result:
----------------
Array
(
[0] => Array
(
[product_id] => 16
[notes] => "this product..."
[brand] => "Best Yet"
...
Actual result:
--------------
Array
(
[0] => Array
(
[product_id] =>
[notes] => "this product..."
[brand] => "Best Yet"
...
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=48151&edit=1