@@ -988,28 +988,32 @@ PHP_METHOD(mysqli_stmt, __construct)
988
988
if (zend_parse_parameters (ZEND_NUM_ARGS (), "O|s!" , & mysql_link , mysqli_link_class_entry , & statement , & statement_len ) == FAILURE ) {
989
989
RETURN_THROWS ();
990
990
}
991
-
992
991
MYSQLI_FETCH_RESOURCE_CONN (mysql , mysql_link , MYSQLI_STATUS_VALID );
993
992
994
993
stmt = (MY_STMT * ) ecalloc (1 , sizeof (MY_STMT ));
995
- stmt -> stmt = mysql_stmt_init (mysql -> mysql );
996
- if (stmt -> stmt && statement ) {
997
- mysql_stmt_prepare (stmt -> stmt , (char * )statement , statement_len );
998
- }
999
994
1000
- if (!stmt -> stmt ) {
995
+ if (!( stmt -> stmt = mysql_stmt_init ( mysql -> mysql )) ) {
1001
996
efree (stmt );
1002
997
RETURN_FALSE ;
1003
998
}
999
+
1004
1000
#ifndef MYSQLI_USE_MYSQLND
1005
1001
ZVAL_COPY (& stmt -> link_handle , mysql_link );
1006
1002
#endif
1007
1003
1008
1004
mysqli_resource = (MYSQLI_RESOURCE * )ecalloc (1 , sizeof (MYSQLI_RESOURCE ));
1009
1005
mysqli_resource -> ptr = (void * )stmt ;
1010
- mysqli_resource -> status = ( ZEND_NUM_ARGS () == 1 ) ? MYSQLI_STATUS_INITIALIZED : MYSQLI_STATUS_VALID ;
1006
+ mysqli_resource -> status = MYSQLI_STATUS_INITIALIZED ;
1011
1007
1012
1008
MYSQLI_REGISTER_RESOURCE_EX (mysqli_resource , getThis ());
1009
+
1010
+ if (statement ) {
1011
+ if (mysql_stmt_prepare (stmt -> stmt , statement , statement_len )) {
1012
+ MYSQLI_REPORT_STMT_ERROR (stmt -> stmt );
1013
+ RETURN_FALSE ;
1014
+ }
1015
+ mysqli_resource -> status = MYSQLI_STATUS_VALID ;
1016
+ }
1013
1017
}
1014
1018
1015
1019
PHP_METHOD (mysqli_result , __construct )
0 commit comments