Re: Any method to get primary key matching a given value ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Ratin,
I "think" you can just do this and not have to store the table name.
However, I have no way of testing this. You will have to test on your end. 

while ($result = $query->fetchArray()) {
	if ($result['pk'] !== null) {
		$primary_key=$result['pk'];
	}
}

Best,

Karl DeSaulniers
Design Drumm
http://designdrumm.com <http://designdrumm.com/>




> On Oct 10, 2016, at 7:12 PM, Ratin <ratin3@xxxxxxxxx> wrote:
> 
> Sorry about my late reply but this was my function - a bit of a hack but works properly on my version of php-sqlite3:
> 
>      
>       function get_primary_key_name($table)
>       {
>            $primary_key='';
>            $db = new MyDB();
>            if(!$db)
>            {
>                echo $db->lastErrorMsg();
>            }
>            else
>            {
>                $qstr = "PRAGMA table_info(" . $table . ");" ;
>                $query = $db->query($qstr);
>                while ($result = $query->fetchArray())
>                {
>                   if ($result['pk'] == 1)
>                   {
>                         $primary_key=$result['name'];
>                    }
>                 }
>            }
>            $db->close();
>            return $primary_key;
>        }
> 
> 
> On Sat, Aug 20, 2016 at 3:35 AM, Karl DeSaulniers <karl@xxxxxxxxxxxxxxx <mailto:karl@xxxxxxxxxxxxxxx>> wrote:
> This may also shed some light for you.
> The accepted answer and possibly the one below it if you are on .NET
> 
> http://stackoverflow.com/questions/763516/information-schema-columns-on-sqlite <http://stackoverflow.com/questions/763516/information-schema-columns-on-sqlite>
> 
> HTH,
> 
> Best,
> 
> Karl DeSaulniers
> Design Drumm
> http://designdrumm.com <http://designdrumm.com/>
> 
> 
> 
> 
> > On Aug 20, 2016, at 5:30 AM, Karl DeSaulniers <karl@xxxxxxxxxxxxxxx <mailto:karl@xxxxxxxxxxxxxxx>> wrote:
> >
> > Hey Ratin,
> > Have you looked into the table column named 'pk' inside table_info?
> > That is where a column is indicated to be a primary key or not.
> >
> > Best,
> >
> > Karl DeSaulniers
> > Design Drumm
> > http://designdrumm.com <http://designdrumm.com/> <http://designdrumm.com/ <http://designdrumm.com/>>
> >
> >
> >
> >
> >> On Aug 18, 2016, at 6:51 PM, Ratin <ratin3@xxxxxxxxx <mailto:ratin3@xxxxxxxxx>> wrote:
> >>
> >> Hi Karl, Thanks a lot for your response, I think  INFORMATION_SCHEMA is not available for sqlite database. I had to built up the whole query with php using PRAGMA table_info(tablename), looking at the pk entry, when its 1, get the column name, and then update the sql statement based on that. A bit of work, wouldve been much simpler if a method was provided, but oh well ..
> >>
> >> Thanks again
> >>
> >> Ratin
> >>
> >> On Thu, Aug 18, 2016 at 2:53 PM, Karl DeSaulniers <karl@xxxxxxxxxxxxxxx <mailto:karl@xxxxxxxxxxxxxxx> <mailto:karl@xxxxxxxxxxxxxxx <mailto:karl@xxxxxxxxxxxxxxx>>> wrote:
> >> Hi Ratin,
> >> Going to take a stab at this one.
> >> Have you looked into INFORMATION_SCHEMA.COLUMNS for your query?
> >> Might be where you want to look for what you are trying.
> >> Sorry can't help more.
> >>
> >> Best,
> >>
> >> Karl DeSaulniers
> >> Design Drumm
> >> http://designdrumm.com <http://designdrumm.com/> <http://designdrumm.com/ <http://designdrumm.com/>>
> >>
> >>
> >>
> >>
> >>> On Aug 18, 2016, at 1:27 PM, Ratin <ratin3@xxxxxxxxx <mailto:ratin3@xxxxxxxxx> <mailto:ratin3@xxxxxxxxx <mailto:ratin3@xxxxxxxxx>>> wrote:
> >>>
> >>> I'm writing the generic get that works on different tables having different
> >>> primary keys but the argument of get is always the primary key , i.e. get
> >>> request is -
> >>>
> >>> get (column name, value)
> >>>
> >>> the value is always the primary key value.
> >>>
> >>> It looks like it would be a pretty standard method but I cant find a method
> >>> like that. Anybody have any clue?
> >>>
> >>> Thanks
> >>>
> >>> Ratin
> >>
> >>
> >> --
> >> PHP Database Mailing List (http://www.php.net/ <http://www.php.net/> <http://www.php.net/ <http://www.php.net/>>)
> >> To unsubscribe, visit: http://www.php.net/unsub.php <http://www.php.net/unsub.php> <http://www.php.net/unsub.php <http://www.php.net/unsub.php>>
> >>
> >>
> >
> 
> 
> --
> PHP Database Mailing List (http://www.php.net/ <http://www.php.net/>)
> To unsubscribe, visit: http://www.php.net/unsub.php <http://www.php.net/unsub.php>
> 
> 


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux