This is a discussion on MySQL PHP =@ symbol within the PHP Language forums, part of the PHP Programming Forums category; I've seen this in php.net $r=@mysql_query($query,$MySQL); and I do not understand what would be the ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
Angelos wrote:
> I've seen this in php.net $r=@mysql_query($query,$MySQL); > and I do not understand what would be the difference of this : > $r=mysql_query($query,$MySQL); > > I mean what is the purpose of " =@ " ? > Does anyone know ? I am Just curious It prevents errors from being displayed when the function is called. -- Chris Hope | www.electrictoolbox.com | www.linuxcdmall.com |
|
|||
|
>> I've seen this in php.net $r=@mysql_query($query,$MySQL);
>> and I do not understand what would be the difference of this : >> $r=mysql_query($query,$MySQL); >> >> I mean what is the purpose of " =@ " ? >> Does anyone know ? I am Just curious > > It prevents errors from being displayed when the function is called. That sounds usefull... but I thought that if error reporting is OFF then errors are not displayed but then again you propably mean that it doesn't display MySQL errors... ;-) |
|
|||
|
Angelos wrote:
>>> I've seen this in php.net $r=@mysql_query($query,$MySQL); >>> and I do not understand what would be the difference of this : >>> $r=mysql_query($query,$MySQL); >>> >>> I mean what is the purpose of " =@ " ? >>> Does anyone know ? I am Just curious >> >> It prevents errors from being displayed when the function is called. > > That sounds usefull... but I thought that if error reporting is OFF > then errors are not displayed but then again you propably mean that it > doesn't display MySQL errors... If error reporting is set to *show* errors, then the @ symbol before a function call will prevent the error from displaying. Obviously it won't show if error reporting is set to not show them ;) MySQL errors aren't displayed anyway, unless you make a syntax error when calling the function. To find out if MySQL returned an error you need to use the mysql_error() or mysql_errno() functions. -- Chris Hope | www.electrictoolbox.com | www.linuxcdmall.com |
|
|||
|
> MySQL errors aren't displayed anyway, unless you make a syntax error
> when calling the function. To find out if MySQL returned an error you > need to use the mysql_error() or mysql_errno() functions. oh ok, didn't know that... I always use mysql_error() anyway... |
|
|||
|
"Angelos" <angelos@redcatmedia.net> wrote in news:d6ck7q$fo7$1
@nwrdmz01.dmz.ncs.ea.ibs-infra.bt.com: >> MySQL errors aren't displayed anyway, unless you make a syntax error >> when calling the function. To find out if MySQL returned an error you >> need to use the mysql_error() or mysql_errno() functions. > > oh ok, didn't know that... > I always use mysql_error() anyway... the '@' is most valuable when you're requesting variables that have been POSTed or REQUESTed: @$Name = $_POST['Name']; So, in case someone DIDN'T fill out the field 'Name', the script won't go all ugly. It lets you handle errors gracefully. Without the @ in the above line, the output would be "Notice: Undefined Variable 'Name'" or something. Instead I can just add: if ($vName=="") { echo "Sorry, please fill out your name."; exit; } .... to handle the error gracefully... |
|
|||
|
Good Man wrote:
> "Angelos" <angelos@redcatmedia.net> wrote in news:d6ck7q$fo7$1 > @nwrdmz01.dmz.ncs.ea.ibs-infra.bt.com: > >>> MySQL errors aren't displayed anyway, unless you make a syntax error >>> when calling the function. To find out if MySQL returned an error >>> you need to use the mysql_error() or mysql_errno() functions. >> >> oh ok, didn't know that... >> I always use mysql_error() anyway... > > the '@' is most valuable when you're requesting variables that have > been POSTed or REQUESTed: > > @$Name = $_POST['Name']; > > So, in case someone DIDN'T fill out the field 'Name', the script won't > go > all ugly. It lets you handle errors gracefully. Without the @ in the > above line, the output would be "Notice: Undefined Variable 'Name'" > or > something. Instead I can just add: > > if ($vName=="") { > echo "Sorry, please fill out your name."; > exit; > } > > ... to handle the error gracefully... You could do it like this instead of using the @, although your way is less verbose. $name = isset($_POST['name']) ? $_POST['name'] : ''; An advantage of doing it this way is it this way lets you specify a default value. -- Chris Hope | www.electrictoolbox.com | www.linuxcdmall.com |
|
|||
|
Chris,
> You could do it like this instead of using the @, although your way is > less verbose. > > $name = isset($_POST['name']) ? $_POST['name'] : ''; > > An advantage of doing it this way is it this way lets you specify a > default value. sometimes an even better way is with empty, for say if a field is required data :) if (empty($_POST['name'])) { echo('Name must be filled out.'); } |
|
|||
|
if ($vName=="") { also produces E_NOTICE errors, so, don't do this.
Use isset() or empty(). Also for what it's worth, the @ error operator is documented in the PHP Manual here: http://php.net/manual/en/language.op...rorcontrol.php |
|
|||
|
Mike Willbanks wrote:
> Chris, >> You could do it like this instead of using the @, although your way >> is less verbose. >> >> $name = isset($_POST['name']) ? $_POST['name'] : ''; >> >> An advantage of doing it this way is it this way lets you specify a >> default value. > > sometimes an even better way is with empty, for say if a field is > required data :) > > if (empty($_POST['name'])) { > echo('Name must be filled out.'); > } That's cool. Isn't it fun how you can program in a language for 7 years and still not know a little thing like that :) -- Chris Hope | www.electrictoolbox.com | www.linuxcdmall.com |