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.
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 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