-----Original Message-----
From: M. Sokolewicz [mailto:[EMAIL PROTECTED]
Sent: Friday, July 04, 2008 10:18 PM
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]; [email protected]
Subject: [PHP] Re: No Database Connection possible (mySQL)
David Robley wrote:
> Aviation Coding wrote:
>
>> Hi all,
>>
>> I am having problems with a connection to a mysql database.
>>
>> I am using
>>
>> ----
>> function con()
>> {
>> mysql_connect("localhost","user","pass") or die(mysql_error());
>> mysql_select_db("tava") or die(mysql_error());
>> }
>> ----
>>
>> Now, when I call the _function_ (!)
>> ----
>> con() or die("no con");
>> ----
>> I get the "no con" output.
>>
>> When I call the mysql_connect and mysql_select directly before executing
a
>> query, I get some DB output. But that won't work when I am using the
>> function...
>>
>> Any ideas would be greatly appreciated.
>>
>> Cheers!
>>
>> Chris
>
> I think you need to return something from the function, like true if the
> connection/select worked, false if not.
>
>
>
> Cheers
You are correct.
function foo() {
// does something
}
var_dump(foo()); // returns NULL
why? because you don't explicitly return anything. If you did, that'd be
the return value. So if you did:
function bar() {
// does something
return true;
}
var_dump(bar()); // return true
Now, your script assumes a return-value:
baz() or somethingElse();
is an expression. This basically says:
if(!baz()) {
somethingElse();
}
Now, return (implicitly) null will result in (trough lazy comparison) a
false value (*null == false*, null !== false), which then triggers your
die() condition. Returning a meaningful value will get rid of that.
Other than that, choose 1 of 2 techniques:
1. error out inside the function itself (like you do now)
OR
2. error out based on the return-value of the function (like you do now
ASWELL)
don't combine 1 and 2, stick with either, but not both.
function con()
{
mysql_connect("localhost","user","pass") or die(mysql_error());
mysql_select_db("tava") or die(mysql_error());
}
con();
works. The following would work too:
function con()
{
$r = mysql_connect("localhost","user","pass");
if(!$r) {
return false;
}
$r2 = mysql_select_db("tava");
if(!$r2) {
return false;
}
return true;
}
con() or die('no conn');
would also work correctly. So, stick with either, don't mix em.
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
That worked like a charm. Thanks a lot. That one really had me stuck for
quite some hours. Thank God for this list *g*
Wish you all a great start into the week!
Chris
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php