]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-7.4' into PHP-8.0
authorNikita Popov <nikita.ppv@gmail.com>
Wed, 25 Nov 2020 15:29:00 +0000 (16:29 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Wed, 25 Nov 2020 15:29:00 +0000 (16:29 +0100)
* PHP-7.4:
  Fixed error reporting in mysqli_stmt::__construct

1  2 
ext/mysqli/mysqli.c

index 55557da48898ddd53a3f54a430c00a54acc6738f,c4dbcb251a668861e09ffa0e93c2912d32f6f9e9..928ef8ea7677bb928d7ef41087aeb1af940820a0
@@@ -986,9 -1045,8 +986,8 @@@ PHP_METHOD(mysqli_stmt, __construct
        size_t                                  statement_len;
  
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "O|s!", &mysql_link, mysqli_link_class_entry, &statement, &statement_len) == FAILURE) {
 -              return;
 +              RETURN_THROWS();
        }
        MYSQLI_FETCH_RESOURCE_CONN(mysql, mysql_link, MYSQLI_STATUS_VALID);
  
        stmt = (MY_STMT *) ecalloc(1, sizeof(MY_STMT));
  
        mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
        mysqli_resource->ptr = (void *)stmt;
-       mysqli_resource->status = (ZEND_NUM_ARGS() == 1) ? MYSQLI_STATUS_INITIALIZED : MYSQLI_STATUS_VALID;
+       mysqli_resource->status = MYSQLI_STATUS_INITIALIZED;
  
        MYSQLI_REGISTER_RESOURCE_EX(mysqli_resource, getThis());
+       if (statement) {
+               if(mysql_stmt_prepare(stmt->stmt, statement, statement_len)) {
+                       MYSQLI_REPORT_STMT_ERROR(stmt->stmt);
+                       RETURN_FALSE;
+               }
+               mysqli_resource->status = MYSQLI_STATUS_VALID;
+       }
  }
 -/* }}} */
  
 -/* {{{ mixed mysqli_result_construct()
 -constructor for result object.
 -Parameters:
 -  object [, mode] -> mysqli_store/use_result
 -*/
 -PHP_FUNCTION(mysqli_result_construct)
 +PHP_METHOD(mysqli_result, __construct)
  {
        MY_MYSQL                        *mysql;
        MYSQL_RES                       *result = NULL;