@@ -4529,7 +4529,6 @@ PHP_PGSQL_API zend_result php_pgsql_convert(PGconn *pg_link, const zend_string *
4529
4529
data_type = php_pgsql_get_data_type (Z_STR_P (type ));
4530
4530
}
4531
4531
4532
- /* TODO: Should E_NOTICE be converted to type error if PHP type cannot be converted to field type? */
4533
4532
switch (data_type )
4534
4533
{
4535
4534
case PG_BOOL :
@@ -4554,7 +4553,7 @@ PHP_PGSQL_API zend_result php_pgsql_convert(PGconn *pg_link, const zend_string *
4554
4553
ZVAL_STRINGL (& new_val , "'f'" , sizeof ("'f'" )- 1 );
4555
4554
}
4556
4555
else {
4557
- php_error_docref ( NULL , E_NOTICE , "Detected invalid value (%s) for PostgreSQL %s field (%s)" , Z_STRVAL_P ( val ), Z_STRVAL_P ( type ), ZSTR_VAL ( field ));
4556
+ zend_value_error ( "%s(): Field \"%s\" must be of type bool, invalid PostgreSQL string boolean value \"%s\" given" , get_active_function_name ( ), ZSTR_VAL ( field ), Z_STRVAL_P ( val ));
4558
4557
err = 1 ;
4559
4558
}
4560
4559
}
@@ -4586,7 +4585,7 @@ PHP_PGSQL_API zend_result php_pgsql_convert(PGconn *pg_link, const zend_string *
4586
4585
}
4587
4586
PGSQL_CONV_CHECK_IGNORE ();
4588
4587
if (err ) {
4589
- php_error_docref ( NULL , E_NOTICE , "Expects string, null, long or boolelan value for PostgreSQL '%s' (%s) " , Z_STRVAL_P ( type ), ZSTR_VAL (field ));
4588
+ zend_type_error ( "%s(): Field \"%s\" must be of type string|null|int|bool, %s given " , get_active_function_name ( ), ZSTR_VAL (field ), Z_STRVAL_P ( type ));
4590
4589
}
4591
4590
break ;
4592
4591
@@ -4630,7 +4629,7 @@ PHP_PGSQL_API zend_result php_pgsql_convert(PGconn *pg_link, const zend_string *
4630
4629
}
4631
4630
PGSQL_CONV_CHECK_IGNORE ();
4632
4631
if (err ) {
4633
- php_error_docref ( NULL , E_NOTICE , "Expects NULL, string, long or double value for pgsql '%s' (%s) " , Z_STRVAL_P ( type ), ZSTR_VAL (field ));
4632
+ zend_type_error ( "%s(): Field \"%s\" must be of type int|null, %s given " , get_active_function_name ( ), ZSTR_VAL (field ), Z_STRVAL_P ( type ));
4634
4633
}
4635
4634
break ;
4636
4635
@@ -4679,7 +4678,7 @@ PHP_PGSQL_API zend_result php_pgsql_convert(PGconn *pg_link, const zend_string *
4679
4678
}
4680
4679
PGSQL_CONV_CHECK_IGNORE ();
4681
4680
if (err ) {
4682
- php_error_docref ( NULL , E_NOTICE , "Expects NULL, string, long or double value for PostgreSQL '%s' (%s) " , Z_STRVAL_P ( type ), ZSTR_VAL (field ));
4681
+ zend_type_error ( "%s(): Field \"%s\" must be of type %s|int|null, %s given " , get_active_function_name ( ), ( data_type == PG_MONEY ? "money" : "float" ), ZSTR_VAL (field ), Z_STRVAL_P ( type ));
4683
4682
}
4684
4683
break ;
4685
4684
@@ -4740,7 +4739,7 @@ PHP_PGSQL_API zend_result php_pgsql_convert(PGconn *pg_link, const zend_string *
4740
4739
}
4741
4740
PGSQL_CONV_CHECK_IGNORE ();
4742
4741
if (err ) {
4743
- php_error_docref ( NULL , E_NOTICE , "Expects NULL, string, long or double value for PostgreSQL '%s' (%s) " , Z_STRVAL_P ( type ), ZSTR_VAL (field ));
4742
+ zend_type_error ( "%s(): Field \"%s\" must be of type string|null, %s given " , get_active_function_name ( ), ZSTR_VAL (field ), Z_STRVAL_P ( type ));
4744
4743
}
4745
4744
break ;
4746
4745
@@ -4782,7 +4781,7 @@ PHP_PGSQL_API zend_result php_pgsql_convert(PGconn *pg_link, const zend_string *
4782
4781
}
4783
4782
PGSQL_CONV_CHECK_IGNORE ();
4784
4783
if (err ) {
4785
- php_error_docref ( NULL , E_NOTICE , "Expects NULL, string, long or double value for '%s' (%s) " , Z_STRVAL_P ( type ), ZSTR_VAL (field ));
4784
+ zend_type_error ( "%s(): Field \"%s\" must be of type int|null, %s given " , get_active_function_name ( ), ZSTR_VAL (field ), zend_zval_value_name ( val ));
4786
4785
}
4787
4786
break ;
4788
4787
@@ -4801,7 +4800,7 @@ PHP_PGSQL_API zend_result php_pgsql_convert(PGconn *pg_link, const zend_string *
4801
4800
at all though and let the server side to handle it.*/
4802
4801
if (php_pgsql_convert_match (Z_STR_P (val ), REGEX0 , sizeof (REGEX0 )- 1 , 0 ) == FAILURE
4803
4802
&& php_pgsql_convert_match (Z_STR_P (val ), REGEX1 , sizeof (REGEX1 )- 1 , 0 ) == FAILURE ) {
4804
- err = 1 ;
4803
+ err = 2 ;
4805
4804
}
4806
4805
else {
4807
4806
ZVAL_STR (& new_val , php_pgsql_add_quotes (Z_STR_P (val )));
@@ -4820,7 +4819,11 @@ PHP_PGSQL_API zend_result php_pgsql_convert(PGconn *pg_link, const zend_string *
4820
4819
}
4821
4820
PGSQL_CONV_CHECK_IGNORE ();
4822
4821
if (err ) {
4823
- php_error_docref (NULL , E_NOTICE , "Expects NULL or IPv4 or IPv6 address string for '%s' (%s)" , Z_STRVAL_P (type ), ZSTR_VAL (field ));
4822
+ if (err == 2 ) {
4823
+ zend_value_error ("%s(): Field \"%s\" must be a valid IPv4 or IPv6 address string, \"%s\" given" , get_active_function_name (), ZSTR_VAL (field ), Z_STRVAL_P (val ));
4824
+ } else {
4825
+ zend_type_error ("%s(): Field \"%s\" must be of type string|null, given %s" , get_active_function_name (), ZSTR_VAL (field ), zend_zval_value_name (val ));
4826
+ }
4824
4827
}
4825
4828
break ;
4826
4829
@@ -4854,7 +4857,7 @@ PHP_PGSQL_API zend_result php_pgsql_convert(PGconn *pg_link, const zend_string *
4854
4857
}
4855
4858
PGSQL_CONV_CHECK_IGNORE ();
4856
4859
if (err ) {
4857
- php_error_docref ( NULL , E_NOTICE , "Expects NULL or string for PostgreSQL %s field (%s) " , Z_STRVAL_P ( type ), ZSTR_VAL (field ));
4860
+ zend_type_error ( "%s(): Field \"%s\" must be of type string|null, %s given " , get_active_function_name ( ), ZSTR_VAL (field ), Z_STRVAL_P ( type ));
4858
4861
}
4859
4862
break ;
4860
4863
@@ -4886,7 +4889,7 @@ PHP_PGSQL_API zend_result php_pgsql_convert(PGconn *pg_link, const zend_string *
4886
4889
}
4887
4890
PGSQL_CONV_CHECK_IGNORE ();
4888
4891
if (err ) {
4889
- php_error_docref ( NULL , E_NOTICE , "Expects NULL or string for PostgreSQL %s field (%s) " , Z_STRVAL_P ( type ), ZSTR_VAL (field ));
4892
+ zend_type_error ( "%s(): Field \"%s\" must be of type string|null, %s given " , get_active_function_name ( ), ZSTR_VAL (field ), Z_STRVAL_P ( type ));
4890
4893
}
4891
4894
break ;
4892
4895
@@ -4918,7 +4921,7 @@ PHP_PGSQL_API zend_result php_pgsql_convert(PGconn *pg_link, const zend_string *
4918
4921
}
4919
4922
PGSQL_CONV_CHECK_IGNORE ();
4920
4923
if (err ) {
4921
- php_error_docref ( NULL , E_NOTICE , "Expects NULL or string for PostgreSQL %s field (%s) " , Z_STRVAL_P ( type ), ZSTR_VAL (field ));
4924
+ zend_type_error ( "%s(): Field \"%s\" must be of type string|null, %s given " , get_active_function_name ( ), ZSTR_VAL (field ), Z_STRVAL_P ( type ));
4922
4925
}
4923
4926
break ;
4924
4927
@@ -4996,7 +4999,7 @@ PHP_PGSQL_API zend_result php_pgsql_convert(PGconn *pg_link, const zend_string *
4996
4999
}
4997
5000
PGSQL_CONV_CHECK_IGNORE ();
4998
5001
if (err ) {
4999
- php_error_docref ( NULL , E_NOTICE , "Expects NULL or string for PostgreSQL %s field (%s) " , Z_STRVAL_P ( type ), ZSTR_VAL (field ));
5002
+ zend_type_error ( "%s(): Field \"%s\" must be of type string|null, %s given " , get_active_function_name ( ), ZSTR_VAL (field ), Z_STRVAL_P ( type ));
5000
5003
}
5001
5004
break ;
5002
5005
case PG_BYTEA :
@@ -5037,7 +5040,7 @@ PHP_PGSQL_API zend_result php_pgsql_convert(PGconn *pg_link, const zend_string *
5037
5040
}
5038
5041
PGSQL_CONV_CHECK_IGNORE ();
5039
5042
if (err ) {
5040
- php_error_docref ( NULL , E_NOTICE , "Expects NULL, string, long or double value for PostgreSQL '%s' (%s) " , Z_STRVAL_P ( type ), ZSTR_VAL (field ));
5043
+ zend_type_error ( "%s(): Field \"%s\" must be of type string|null, %s given " , get_active_function_name ( ), ZSTR_VAL (field ), Z_STRVAL_P ( type ));
5041
5044
}
5042
5045
break ;
5043
5046
@@ -5068,7 +5071,7 @@ PHP_PGSQL_API zend_result php_pgsql_convert(PGconn *pg_link, const zend_string *
5068
5071
}
5069
5072
PGSQL_CONV_CHECK_IGNORE ();
5070
5073
if (err ) {
5071
- php_error_docref ( NULL , E_NOTICE , "Expects NULL or string for PostgreSQL %s field (%s) " , Z_STRVAL_P ( type ), ZSTR_VAL (field ));
5074
+ zend_type_error ( "%s(): Field \"%s\" must be of type string|null, %s given " , get_active_function_name ( ), ZSTR_VAL (field ), Z_STRVAL_P ( type ));
5072
5075
}
5073
5076
break ;
5074
5077
0 commit comments