Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

sql PDO fetchall duplicate object keys?

Tags:

sql

php

pdo

I've issue in PDO using fetchAll() method .

when execute the results showing array of objects its fine , but each object has duplicate keys for example :

$catid = intval( $api->param['catid'] );

      $json   = array();
      $prepar = "SELECT * FROM " . DB_PREFIX . "cat_sub WHERE `catid` = :catid ORDER BY `orderid` asc";

      try{

               $q = $api->pdo->prepare($prepar);

               $q->bindparam(":catid" , $catid , PDO::PARAM_INT);

               $q->execute();

               $json = $q->fetchAll();

      }catch( PDOException $e ){

           $api->showError = $e->getMessage();

      }

      echo json_encode($json);
      exit();

the output of each object is

{
"subcatid":"6",
"0":"6",
"title":"coool ",
"1":"coool ",
"catid":"2",
"2":"2",
"orderid":"1",
"3":"1"
},

and its should be

{
"subcatid":"6",
"title":"coool ",
"catid":"2",
"orderid":"1",
},

any advice how to do this without loop or foreach :)

like image 851
Khodour.F Avatar asked Sep 29 '14 06:09

Khodour.F


2 Answers

You have to specify fetching mode

$q->fetchAll(PDO::FETCH_ASSOC);
like image 127
Justinas Avatar answered Oct 23 '22 08:10

Justinas


Please specify the Mode of fetching

Change

$json = $q->fetchAll(); 

to

$q->fetchAll(PDO::FETCH_ASSOC);
like image 6
Mad Angle Avatar answered Oct 23 '22 09:10

Mad Angle