[Phpmyadmin-devel] notices in libraries/RecentTables.class.php
Marc Delisle
marc at infomarc.info
Thu Jun 23 14:32:15 CEST 2011
Le 2011-06-23 08:18, Aris Feryanto a écrit :
> ----- Original Message -----
>
>> From: Marc Delisle <marc at infomarc.info>
>>
>> Le 2011-06-23 05:46, Rouslan Placella a écrit :
>>> On Thu, 2011-06-23 at 01:53 -0700, Aris Feryanto wrote:
>>>> ----- Original Message -----
>>>>
>>>>> From: Marc Delisle <marc at infomarc.info>
>>>>>
>>>>> Aris Feryanto a écrit :
>>>>>> Hi Marc,
>>>>>>
>>>>>> ----- Original Message -----
>>>>>>> From: Marc Delisle <marc at infomarc.info>
>>>>>>>
>>>>>>> From current master, when browsing a table:
>>>>>>>
>>>>>>> Warning in ./libraries/RecentTable.class.php#190
>> array_unshift()
>>>>>>> expects parameter 1 to be array, null given
>>>>>>>
>>>>>>> Backtrace
>>>>>>>
>>>>>>> ./libraries/RecentTable.class.php#190: array_unshift(
>> NULL, string
>>>>>>> sakila.actor, ) ./libraries/header.inc.php#22:
>>>>>>> PMA_RecentTable->add( string sakila, string actor, )
>>>>>>> ./libraries/header.inc.php#171: PMA_addRecentTable(
>>>>>>> string
>> sakila,
>>>>>>> string actor, ) ./libraries/tbl_links.inc.php#40:
>>>>>>> require_once(./libraries/header.inc.php) ./sql.php#881:
>>>>>>> require(./libraries/tbl_links.inc.php)
>>>>>>>
>>>>>>
>>>>>> Odd. It shouldn't be NULL because it is always initialized
>>>>>>
>> when
>>>>>> PMA_RecentTable class is being constructed. And I can't
>> reproduce
>>>>>> this warning. Is this warning found in demo server?
>>>>>
>>>>> No but possibly, warnings and notices are turned off on the
>>>>> demo
>> server.
>>>>>
>>>>> On your development machine you should use this line in
>> config.inc.php:
>>>>> $cfg['Error_Handler']['display'] = true;
>>>>>
>>>>
>>>> Hi Marc,
>>>>
>>>> I keep looking for the warning while developing the show/hide
>>>> column
>> feature, but I still cannot see it until now. Please let me know
>> about your steps to reproduce it.
>>>>
>>>>
>>>> -- Aris Feryanto
>>>
>>> I saw some similar notices some time ago and afterwards the
>>> recent tables feature stopped working completely. Today I dumped
>>> the pma_recent table and found this:
>>>
>>> ##### SNIP ##### -- -- Table structure for table `pma_recent` --
>>> CREATE TABLE IF NOT EXISTS `pma_recent` ( `username` varchar(64)
>>> COLLATE utf8_bin NOT NULL, `tables` blob NOT NULL, PRIMARY KEY
>>> (`username`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8
>>> COLLATE=utf8_bin; -- -- Dumping data for table `pma_recent` --
>>> INSERT INTO `pma_recent` (`username`, `tables`) VALUES ('root',
>>> 0x6e756c6c); ##### SNIP #####
>>>
>>> Of course, if you UNHEX 0x6e756c6c, you get 'null'. No idea how
>> that
>>> value got there, but after deleting that row, the feature started
>>> to work as expected again.
>>>
>>> BTW, I'm not sure why you are storing all the table names in one
>>> row. For me it would make more sense to remove the PK constraint
>>> from the `username` column and replace it with a non-unique
>>> index. After that you can store each user/table combination on a
>>> new row, which would make fetching easier and would probably
>>> avoid problems like the one I ended up with. Feel free to ignore
>>> this or take it on board.
>>>
>>> Rouslan
>>
>> I also have 'root' and 'null' in my pma_recent table.
>>
>
> Hmm. I think the 'null' is caused by recent changes in "recent
> tables" code when fixing bug: recent table not work correctly when
> changing between different server. To solve this, please clear the
> pma_recent table, like Rouslan did.
>
Aris,
I cleared the table, the feature started working again and the notices
are gone; thanks.
--
Marc Delisle
http://infomarc.info
More information about the Developers
mailing list