@@ -1040,9 +1040,9 @@ PHP_FUNCTION(mysqli_insert_id)
1040
1040
/* {{{ Kill a mysql process on the server */
1041
1041
PHP_FUNCTION (mysqli_kill )
1042
1042
{
1043
- MY_MYSQL * mysql ;
1044
- zval * mysql_link ;
1045
- zend_long processid ;
1043
+ MY_MYSQL * mysql ;
1044
+ zval * mysql_link ;
1045
+ zend_long processid ;
1046
1046
1047
1047
if (zend_parse_method_parameters (ZEND_NUM_ARGS (), getThis (), "Ol" , & mysql_link , mysqli_link_class_entry , & processid ) == FAILURE ) {
1048
1048
RETURN_THROWS ();
@@ -1055,10 +1055,14 @@ PHP_FUNCTION(mysqli_kill)
1055
1055
1056
1056
MYSQLI_FETCH_RESOURCE_CONN (mysql , mysql_link , MYSQLI_STATUS_VALID );
1057
1057
1058
- if (mysql_kill (mysql -> mysql , processid )) {
1058
+ char query [64 ];
1059
+ snprintf (query , sizeof (query ), "KILL CONNECTION " ZEND_LONG_FMT , processid );
1060
+
1061
+ if (mysql_real_query (mysql -> mysql , query , strlen (query ))) {
1059
1062
MYSQLI_REPORT_MYSQL_ERROR (mysql -> mysql );
1060
- RETURN_FALSE ;
1063
+ RETURN_THROWS () ;
1061
1064
}
1065
+
1062
1066
RETURN_TRUE ;
1063
1067
}
1064
1068
/* }}} */
@@ -1981,14 +1985,35 @@ PHP_FUNCTION(mysqli_store_result)
1981
1985
PHP_FUNCTION (mysqli_thread_id )
1982
1986
{
1983
1987
MY_MYSQL * mysql ;
1988
+ MYSQL_RES * result ;
1989
+ MYSQL_ROW row ;
1984
1990
zval * mysql_link ;
1991
+ zend_long processid ;
1985
1992
1986
1993
if (zend_parse_method_parameters (ZEND_NUM_ARGS (), getThis (), "O" , & mysql_link , mysqli_link_class_entry ) == FAILURE ) {
1987
1994
RETURN_THROWS ();
1988
1995
}
1989
1996
MYSQLI_FETCH_RESOURCE_CONN (mysql , mysql_link , MYSQLI_STATUS_VALID );
1990
1997
1991
- RETURN_LONG ((zend_long ) mysql_thread_id (mysql -> mysql ));
1998
+ static const char * query = "SELECT CONNECTION_ID()" ;
1999
+
2000
+ if (mysql_real_query (mysql -> mysql , query , strlen (query ))) {
2001
+ MYSQLI_REPORT_MYSQL_ERROR (mysql -> mysql );
2002
+ RETURN_THROWS ();
2003
+ }
2004
+
2005
+ result = mysql_store_result (mysql -> mysql );
2006
+ if (!result ) {
2007
+ MYSQLI_REPORT_MYSQL_ERROR (mysql -> mysql );
2008
+ RETURN_THROWS ();
2009
+ }
2010
+
2011
+ row = mysql_fetch_row (result );
2012
+ processid = (zend_long )strtoll (row [0 ], NULL , 10 );
2013
+
2014
+ mysql_free_result (result );
2015
+
2016
+ RETURN_LONG (processid );
1992
2017
}
1993
2018
/* }}} */
1994
2019
0 commit comments