Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 5 additions & 9 deletions ext/mysqli/mysqli_nonapi.c
Original file line number Diff line number Diff line change
Expand Up @@ -965,8 +965,8 @@ PHP_FUNCTION(mysqli_get_charset)
{
MY_MYSQL *mysql;
zval *mysql_link;
const char *name = NULL, *collation = NULL, *dir = NULL, *comment = NULL;
uint32_t minlength, maxlength, number, state;
const char *name = NULL, *collation = NULL;
uint32_t minlength, maxlength;
const MYSQLND_CHARSET *cs;

if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
Expand All @@ -984,19 +984,15 @@ PHP_FUNCTION(mysqli_get_charset)
collation = cs->collation;
minlength = cs->char_minlen;
maxlength = cs->char_maxlen;
number = cs->nr;
comment = cs->comment;
state = 1; /* all charsets are compiled in */
object_init(return_value);

add_property_string(return_value, "charset", (name) ? (char *)name : "");
add_property_string(return_value, "collation",(collation) ? (char *)collation : "");
add_property_string(return_value, "dir", (dir) ? (char *)dir : "");
add_property_string(return_value, "dir", "");
add_property_long(return_value, "min_length", minlength);
add_property_long(return_value, "max_length", maxlength);
add_property_long(return_value, "number", number);
add_property_long(return_value, "state", state);
add_property_string(return_value, "comment", (comment) ? (char *)comment : "");
add_property_long(return_value, "number", 0);
add_property_long(return_value, "state", 1);
}
/* }}} */

Expand Down
4 changes: 0 additions & 4 deletions ext/mysqli/tests/mysqli_fetch_field.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,6 @@ require_once 'skipifconnectfailure.inc';
/* label column, result set charset */
$tmp = mysqli_fetch_field($res);
var_dump($tmp);
if ($tmp->charsetnr != $charsetInfo->number) {
printf("[004] Expecting charset %s/%d got %d\n",
$charsetInfo->charset, $charsetInfo->number, $tmp->charsetnr);
}
if ($tmp->db != $db) {
printf("011] Expecting database '%s' got '%s'\n",
$db, $tmp->db);
Expand Down
4 changes: 0 additions & 4 deletions ext/mysqli/tests/mysqli_fetch_field_oo.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,6 @@ require_once 'skipifconnectfailure.inc';

$tmp = $res->fetch_field();
var_dump($tmp);
if ($tmp->charsetnr != $charsetInfo->number) {
printf("[005] Expecting charset %s/%d got %d\n",
$charsetInfo->charset, $charsetInfo->number, $tmp->charsetnr);
}
if ($tmp->db != $db) {
printf("[007] Expecting database '%s' got '%s'\n",
$db, $tmp->db);
Expand Down
10 changes: 0 additions & 10 deletions ext/mysqli/tests/mysqli_fetch_fields.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,6 @@ require_once 'skipifconnectfailure.inc';
$fields = mysqli_fetch_fields($res);
foreach ($fields as $k => $field) {
var_dump($field);
switch ($k) {
case 1:
/* label column, result set charset */
if ($field->charsetnr != $charsetInfo->number) {
printf("[004] Expecting charset %s/%d got %d\n",
$charsetInfo->charset,
$charsetInfo->number, $field->charsetnr);
}
break;
}
}

mysqli_free_result($res);
Expand Down
4 changes: 0 additions & 4 deletions ext/mysqli/tests/mysqli_field_seek.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,6 @@ require_once 'skipifconnectfailure.inc';
$field = mysqli_fetch_field($res);
var_dump($field);
/* label column, result set charset */
if ($field->charsetnr != $charsetInfo->number) {
printf("[004] Expecting charset %s/%d got %d\n",
$charsetInfo->charset, $charsetInfo->number, $field->charsetnr);
}
if ($field->length != $charsetInfo->max_length) {
printf("[005] Expecting length %d got %d\n",
$charsetInfo->max_length, $field->max_length);
Expand Down
17 changes: 8 additions & 9 deletions ext/mysqli/tests/mysqli_get_charset.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@ require_once 'skipifconnectfailure.inc';
exit(1);
}

// On some servers the default collation is not what we expect,
// so we need to set it explicitly to make sure that the test is deterministic.
mysqli_set_charset($link, 'utf8mb4');
if (!$res = mysqli_query($link, "SET NAMES utf8mb4 COLLATE 'utf8mb4_general_ci'"))
printf("[011] [%d] %s\n", mysqli_errno($link), mysqli_error($link));

if (!$res = mysqli_query($link, 'SELECT @@character_set_connection AS charset, @@collation_connection AS collation'))
printf("[007] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
$tmp = mysqli_fetch_assoc($res);
Expand All @@ -27,13 +33,6 @@ require_once 'skipifconnectfailure.inc';
if (!mysqli_fetch_assoc($res))
printf("[010] Cannot fetch Maxlen and/or Comment, test will fail: $sql\n");

if (!$res = mysqli_query($link, sprintf("SHOW COLLATION LIKE '%s'", $collation_connection)))
printf("[011] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
$tmp = mysqli_fetch_assoc($res);
mysqli_free_result($res);
if (!($id = $tmp['Id']))
printf("[012] Cannot fetch Id/Number, test will fail\n");

if (!$res = mysqli_query($link, sprintf("SHOW VARIABLES LIKE 'character_sets_dir'")))
printf("[013] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
$tmp = mysqli_fetch_assoc($res);
Expand Down Expand Up @@ -66,8 +65,8 @@ require_once 'skipifconnectfailure.inc';

if (!isset($charset->number) ||
!is_int($charset->number) ||
($charset->number !== (int)$id))
printf("[021] Expecting int/%d, got %s/%s\n", $id, gettype($charset->number), $charset->number);
($charset->number !== 0))
printf("[021] Expecting int/%d, got %s/%s\n", 0, gettype($charset->number), $charset->number);

if (!isset($charset->state) ||
!is_int($charset->state))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,6 @@ require_once 'skipifconnectfailure.inc';
Label column, result set charset.
All of the following columns are "too hot" - too server dependent
*/
if ($field->charsetnr != $charsetInfo->number) {
printf("[004] Expecting charset %s/%d got %d\n",
$charsetInfo->charset,
$charsetInfo->number, $field->charsetnr);
}
if ($field->length != $charsetInfo->max_length) {
printf("[005] Expecting length %d got %d\n",
$charsetInfo->max_length, $field->max_length);
Expand Down
Loading
Loading