Skip to content

Commit 1e66beb

Browse files
committed
Tweaks again to attr_set
1 parent 1e09751 commit 1e66beb

File tree

2 files changed

+10
-13
lines changed

2 files changed

+10
-13
lines changed

ext/mysqli/mysqli_api.c

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2243,6 +2243,9 @@ PHP_FUNCTION(mysqli_stmt_attr_set)
22432243
MY_STMT *stmt;
22442244
zval *mysql_stmt;
22452245
zend_long mode_in;
2246+
#if MYSQL_VERSION_ID >= 50107
2247+
my_bool mode_b;
2248+
#endif
22462249
unsigned long mode;
22472250
zend_long attr;
22482251
void *mode_p;
@@ -2256,16 +2259,13 @@ PHP_FUNCTION(mysqli_stmt_attr_set)
22562259
switch (attr) {
22572260
#if MYSQL_VERSION_ID >= 50107
22582261
case STMT_ATTR_UPDATE_MAX_LENGTH:
2259-
{
2260-
//my_bool mode_b;
22612262
if (mode_in != 0 && mode_in != 1) {
22622263
zend_argument_value_error(ERROR_ARG_POS(3), "must be 0 or 1 for attribute MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH");
22632264
RETURN_THROWS();
22642265
}
2265-
mode = mode_in;//(my_bool) mode_in;
2266-
mode_p = &mode;
2266+
mode_b = (my_bool) mode_in;
2267+
mode_p = &mode_b;
22672268
break;
2268-
}
22692269
#endif
22702270
case STMT_ATTR_CURSOR_TYPE: {
22712271
switch (mode_in) {
@@ -2301,12 +2301,7 @@ PHP_FUNCTION(mysqli_stmt_attr_set)
23012301
RETURN_THROWS();
23022302
}
23032303

2304-
// TODO Can unify this?
2305-
#ifndef MYSQLI_USE_MYSQLND
2306-
if (mysql_stmt_attr_set(stmt->stmt, attr, mode_p)) {
2307-
#else
2308-
if (FAIL == mysql_stmt_attr_set(stmt->stmt, attr, mode_p)) {
2309-
#endif
2304+
if (0 != mysql_stmt_attr_set(stmt->stmt, attr, mode_p)) {
23102305
RETURN_FALSE;
23112306
}
23122307
RETURN_TRUE;

ext/mysqli/tests/mysqli_stmt_attr_set.phpt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,10 @@ require_once("connect.inc");
7171
$stmt->prepare("SELECT label FROM test");
7272
var_dump($stmt->attr_set(MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH, 1));
7373
$res = $stmt->attr_get(MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH);
74-
if ($res !== 1)
75-
printf("[007.1] max_length should be 1, got %s\n", $res);
74+
if ($res !== 1) {
75+
printf("[007.1] max_length should be int 1, got\n");
76+
var_dump($res);
77+
}
7678
$stmt->execute();
7779
$stmt->store_result();
7880
$res = $stmt->result_metadata();

0 commit comments

Comments
 (0)