wildteen88 Posted June 11, 2006 Share Posted June 11, 2006 [b]Q:[/b] Whats does @ do?[b]A:[/b] When you browse peoples code you may have came across a weird bit of PHP syntax which has an @ symbol infront of a function or variable like so:[code]<?php$conn = @mysql_connect("localhost", "usr", "pass");@mysql_select_db("foodb", $conn);?>[/code]Ever wondered why and what it does? Well what the @ symbol does is supress errors, which means to force PHP to not show the error message. Why would you want to supress errors? You might not want any errors to be shown when your site goes live, such as if your database connection fails php will ouput an error message if error_reporting is turnedYou shouldn't really use the @ symbol, actually you should [b]never[/b] have to use it if you trap errors correctly it should always be the last option if all other methods of trapping errors fail. Such as for when connecting to mysql in the above code you can do this instead:[code]$conn = mysql_connect("localhost", "usr", "pass") or die("Error connecting to database");[/code]What that now does is trigger the [i]or die[/i] cluase, which will stop your script from running and display a simple error message that you have defined yourself, if php was unable to connect to mysql, therefore it doesn't show this nastly looking error message:[i]Access denied for user 'usr'@'localhost' (using password: YES)[/i]You usually see the @ symbol used by what I call [i]lazy[/i] PHP programmers.Hope that helps understand what the @ symbol does. Link to comment https://forums.phpfreaks.com/topic/11699-whats-with-the-symbol/ Share on other sites More sharing options...
Barand Posted July 2, 2006 Share Posted July 2, 2006 [quote=Wildteen]$conn = mysql_connect("localhost", "usr", "pass") or die("Error connecting to database");[/quote]When I run the above code I get -->[quote]Warning: mysql_connect() [function.mysql-connect]: Access denied for user: 'usr@localhost' (Using password: YES) in mypage.php on line 2Error connecting to database[/quote]Whereas with the "@"[code]<?php$conn = @mysql_connect("localhost", "usr", "pass") or die("Error connecting to database");?>[/code]gives --> Error connecting to database Link to comment https://forums.phpfreaks.com/topic/11699-whats-with-the-symbol/#findComment-52245 Share on other sites More sharing options...
toplay Posted July 10, 2006 Share Posted July 10, 2006 From manual:[quote=http://us2.php.net/manual/en/language.operators.errorcontrol.php]PHP supports one error control operator: the at sign (@). When prepended to an expression in PHP, any error messages that might be generated by that expression will be ignored.Note: The @-operator works only on expressions...[/quote] Link to comment https://forums.phpfreaks.com/topic/11699-whats-with-the-symbol/#findComment-55391 Share on other sites More sharing options...
Recommended Posts