Edit report at https://bugs.php.net/bug.php?id=65397&edit=1

 ID:                 65397
 Updated by:         requi...@php.net
 Reported by:        info at markoheijnen dot com
 Summary:            Mysql_* functions hide their warning
-Status:             Feedback
+Status:             Not a bug
 Type:               Bug
 Package:            MySQL related
 Operating System:   Debian Wheezy
 PHP Version:        5.5.1
 Block user comment: N
 Private report:     N

 New Comment:

The default values
  http://www.php.net/manual/en/mysql.configuration.php
are all empty, but I believe on Windows the default username is "ODBC".


Previous Comments:
------------------------------------------------------------------------
[2013-08-20 17:55:49] info at markoheijnen dot com

It was a mistake in my MySQL user data. Not sure how it get there but because 
it 
could connect to the database without username/password. What is the default 
values in php.ini

------------------------------------------------------------------------
[2013-08-20 03:08:19] requi...@php.net

It isn't fatal in the 5.5.1 I'm executing.

E:\programs\PHP\php-5.5.1-Win32-VC11-x86>php -v
PHP 5.5.1 (cli) (built: Jul 18 2013 10:56:37)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies

E:\programs\PHP\php-5.5.1-Win32-VC11-x86>php -d extension=ext/php_mysql.dll
<?php
error_reporting(-1);
ini_set("display_errors", true);
// replace the query below with one that should actually work
var_dump(mysql_num_rows(mysql_query("SELECT * FROM table LIMIT 1")));
echo "still executing";
?>
^Z

Deprecated: mysql_query(): The mysql extension is deprecated and will be 
removed 
in the future: use mysqli or PDO instead in - on line 5

Warning: mysql_query(): No connection could be made because the target machine 
actively refused it.
 in - on line 5

Warning: mysql_query(): A link to the server could not be established in - on 
line 5

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in 
- 
on line 5
NULL
still executing
E:\programs\PHP\php-5.5.1-Win32-VC11-x86>

Meanwhile at the top of php_mysql.c/php_mysql_do_connect in the source,
https://github.com/php/php-src/blob/master/ext/mysql/php_mysql.c#L734

    php_error_docref(NULL TSRMLS_CC,
                     E_DEPRECATED,
                     "The mysql extension is deprecated and will be removed in 
the future: use mysqli or PDO instead");

(after which it continues on its merry way) and E_DEPRECATED is most certainly 
not fatal.

------------------------------------------------------------------------
[2013-08-20 01:53:38] william dot a dot bartlett at gmail dot com

I mispoke slightly.  As per: 
http://www.php.net/manual/en/function.mysql-query.php

> If the link identifier is not specified, the last link opened by 
> mysql_connect() is assumed. If no such link is found, it will try to create 
> one as if mysql_connect() was called with no arguments. If no connection is 
> found or established, an E_WARNING level error is generated.

when you call mysql_query, it will call mysql_connect().  mysql_connect() 
returns a fatal error, E_DEPRECATED. The E_WARNING is never generated because 
execution crashes before mysql_query is called.  At the most, a documentation 
error.

For goodness sakes, there is no allowable way to call mysql_query() in php5.5 
because there are no valid mysql connections.

------------------------------------------------------------------------
[2013-08-20 01:48:41] william dot a dot bartlett at gmail dot com

> It is just a warning. A "notice", even. Not fatal.

No.  As per: http://www.php.net/manual/en/changelog.mysql.php

In PHP5.5, mysql_* functions emit E_DEPRECATED error, not E_DEPRECATED warning. 
It IS fatal.

My example was intended to indicate that the echo statement nevers occurs 
(which is the expected behavior).

------------------------------------------------------------------------
[2013-08-20 01:43:46] requi...@php.net

It is just a warning. A "notice", even. Not fatal.

@info: It's a silly question but are you sure it didn't connect? What's the 
output of

<?php
error_reporting(-1);
ini_set("display_errors", true);
// replace the query below with one that should actually work
var_dump(mysql_num_rows(mysql_query("SELECT * FROM table LIMIT 1")));
echo "still executing";
?>

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=65397


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=65397&edit=1

Reply via email to