[Phpmyadmin-devel] current HEAD, MySQL 4.0.x and mysqli

Hi, can someone reproduce this? HEAD no longer works correctly with MySQL 4.0.x, with mysqli extension. Many symptoms occur, for example: structure only shows the first 7 fields of a table; insert no longer works, etc. Looks like the output of SHOW FIELDS, when fetched in a loop by PMA_DBI_fetch_assoc(), stops after reading the 7th row. Same server works well with QA_2_6_4 + mysqli extension. Works well with HEAD + mysql extension. I know that mysqli is targeted to MySQL 4.1.x+, but... Marc

Hi On Thu 13. 10. 2005 20:11, Marc Delisle wrote:
can someone reproduce this? HEAD no longer works correctly with MySQL 4.0.x, with mysqli extension. Many symptoms occur, for example: structure only shows the first 7 fields of a table; insert no longer works, etc.
I don't have such setup here, sorry.
Looks like the output of SHOW FIELDS, when fetched in a loop by PMA_DBI_fetch_assoc(), stops after reading the 7th row.
Same server works well with QA_2_6_4 + mysqli extension. Works well with HEAD + mysql extension.
Maybe we luckily didn't hit some issue before, I don't know any major change in this area.
I know that mysqli is targeted to MySQL 4.1.x+, but...
I wouldn't care about such incompatibilites (from http://cz2.php.net/mysqli): The mysqli extension is designed to work with the version 4.1.3 or above of MySQL. For previous versions, please see the MySQL extension documentation. -- Michal Čihař | http://cihar.com

Marc Delisle wrote:
Hi,
can someone reproduce this? HEAD no longer works correctly with MySQL 4.0.x, with mysqli extension. Many symptoms occur, for example: structure only shows the first 7 fields of a table; insert no longer works, etc.
Looks like the output of SHOW FIELDS, when fetched in a loop by PMA_DBI_fetch_assoc(), stops after reading the 7th row.
Same server works well with QA_2_6_4 + mysqli extension. Works well with HEAD + mysql extension.
I know that mysqli is targeted to MySQL 4.1.x+, but...
oh, i dont see there any 'but' mysqli uses many new api functions not supported by mysql <4.1 i think we should and can not take care of this ... -- Sebastian Mendel www.sebastianmendel.de www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet

Sebastian Mendel a écrit :
Marc Delisle wrote:
Hi,
can someone reproduce this? HEAD no longer works correctly with MySQL 4.0.x, with mysqli extension. Many symptoms occur, for example: structure only shows the first 7 fields of a table; insert no longer works, etc.
Looks like the output of SHOW FIELDS, when fetched in a loop by PMA_DBI_fetch_assoc(), stops after reading the 7th row.
Same server works well with QA_2_6_4 + mysqli extension. Works well with HEAD + mysql extension.
I know that mysqli is targeted to MySQL 4.1.x+, but...
oh, i dont see there any 'but'
mysqli uses many new api functions not supported by mysql <4.1
i think we should and can not take care of this ...
I'll continue my testing. I have the problem with PHP 5.1.0-dev of last week. Maybe we should at least give a warning to phpMyAdmin users. Let me talk to Georg about this. Marc

Marc Delisle a écrit :
Sebastian Mendel a écrit :
Marc Delisle wrote:
Hi,
can someone reproduce this? HEAD no longer works correctly with MySQL 4.0.x, with mysqli extension. Many symptoms occur, for example: structure only shows the first 7 fields of a table; insert no longer works, etc.
Looks like the output of SHOW FIELDS, when fetched in a loop by PMA_DBI_fetch_assoc(), stops after reading the 7th row.
Same server works well with QA_2_6_4 + mysqli extension. Works well with HEAD + mysql extension.
I know that mysqli is targeted to MySQL 4.1.x+, but...
oh, i dont see there any 'but'
mysqli uses many new api functions not supported by mysql <4.1
i think we should and can not take care of this ...
I'll continue my testing. I have the problem with PHP 5.1.0-dev of last week. Maybe we should at least give a warning to phpMyAdmin users. Let me talk to Georg about this.
Marc
Ok, it looks like a PHP problem (seen at least in 5.1.0-dev). I have put a workaround in mysqli.dbi.lib.php. The PHP problem itself is not specific to MySQL 4.0.x and I reported it to Georg. To reproduce: <?php $link = mysqli_init(); mysqli_options($link, MYSQLI_OPT_LOCAL_INFILE, TRUE); $server_port = FALSE; $server_socket = NULL; $client_flags = 0; $server = ""; $user = ""; $password = ""; mysqli_real_connect($link, $server, $user, $password, FALSE, $server_port, $serv er_socket, $client_flags); mysqli_select_db($link, 'mysql'); $result = mysqli_query($link, 'SHOW FULL FIELDS FROM user', MYSQLI_STORE_RESULT) ; $fields_cnt = mysqli_num_rows($result); echo '<pre>'; while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { echo '<hr>'; print_r($row); $num = mysqli_num_fields($result); $fields = mysqli_fetch_fields($result); if (is_array($fields)) { echo '$fields is an array'; print_r($fields); } else { echo 'why $fields is not an array?'; } } echo '</pre>'; ?> ======================== Now a question: in mysqli.dbi.lib.php, function PMA_mysqli_fetch_array(), when this function is called by function PMA_DBI_fetch_assoc($result) { return PMA_mysqli_fetch_array($result, MYSQLI_ASSOC); } we only have ASSOC as a result, but in PMA_mysqli_fetch_array(), when we need to convert, we are looking for $data[$i]. This seems wrong to me in this case since we won't get numeric indices. This is why my workaround avoids converting the data. Marc
participants (3)
-
Marc Delisle
-
Michal Čihař
-
Sebastian Mendel