ID:               41910
 Updated by:       [EMAIL PROTECTED]
 Reported By:      dan at novapulsar dot com
-Status:           Open
+Status:           Feedback
 Bug Type:         MySQL related
 Operating System: centos4.3
 PHP Version:      4.4.7
 New Comment:

What is mysql_execute()? 


Previous Comments:
------------------------------------------------------------------------

[2007-07-06 15:30:24] dan at novapulsar dot com

<?php
//connect to valid mysql server
mysql_connect ("localhost", "user", "password") or die
(mysql_error());

mysql_select_db ("mysql") or die (mysql_error());

/* db doesn't really matter because we're trying to raise an error
based on an invalid query */

$strSQL = "select all from nothing this is broken";
$objResult = mysql_execute ($strSQL) or die (fn_Save_Error ('this.php',
mysql_error()));

/*i expect to see the string generated by the save error function,
mysql_error() as a parameter. instead, the 'return' of mysql_error goes
directly to the screen, instead of being passed as a parameter as it is
documented*/

function fn_Save_Error ($x_page_url, $x_error) {
     if (strlen($x_page_url) && strlen($x_error)) {
         //output if debugging is on
         echo ("Error on page: " . $x_page_url . " -> " . $x_error);
         //save to db
     }
}

?>

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

[2007-07-06 09:06:51] [EMAIL PROTECTED]

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc. If the script requires a 
database to demonstrate the issue, please make sure it creates 
all necessary tables, stored procedures etc.

Please avoid embedding huge scripts into the report.



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

[2007-07-06 05:03:25] dan at novapulsar dot com

Description:
------------
Since mysql_error() is documented to 'return' a string, I assumed it
would be safe to put it in either a string, or as an argument to an
error handling function.

Reproduce code:
---------------
function fn_Save_Error ($x_page_url, $x_error) {
     if (strlen($x_page_url) && strlen($x_error)) {
         //output if debugging is on
         echo ("Error on page: " . $x_page_url . " -> " . $x_error);
         //save to db
     }
}

$strSQL = "select all from something will make an error duh";
$objResult = mysql_query ($strSQL) or die (fn_Save_Error('this.php',
mysql_error());

Expected result:
----------------
Expected result is that the string value of mysql_error() is passed as
an argument of datatype string whether blank or with contents to the
fn_Save_Error function. 

Actual result:
--------------
Mysql_error() is output directly to the screen/console, instead of
being passed as a value to fn_Save_Error for custom error handling.

Based on the mysql_error() documentation it should not output the error
to screen, it should return it as a string, so that I could do this:

...some wrong query execution...
$error_message = mysql_error(); echo ($error_message);

$error_message should be == to $mysql_error, but instead it just
outputs to screen/console


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


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

Reply via email to