|
Posted by Erwin Moller on 01/31/06 16:28
Citrus wrote:
> Hey, i'm looking for the best possible way for connecting to my database
> without too much of an effort.
>
> The example works fine and fast. What i need to know is if it's safe,
> stable and the way to go. If anyone has a better way for connecting
> side-wide to something i'd like you to show me. I've had it working before
> using 'global' but people told me 'global' is bad programming.
>
> One of the possibilities would be to make the link and pass it on to every
> function and object but this is NOT an option because it makes my script
> less transparant and easy to read.
>
>
> <?php
>
> class My {
> private static $connection;
>
> function SQL() {
> if(empty(self::$connection)) {
> self::$connection = new mysqli("localhost", "user", "password",
> "db");
> }
> return self::$connection;
> }
> }
>
> class User {
> function __construct() {
> echo "user init<p>";
> }
>
> public function show() {
> $query = My::SQL()->query("SELECT * FROM user");
> while($row = $query->fetch_object()) {
> echo $row->login."<p>";
> }
> }
> }
>
> $user = new User();
> $user->show();
>
> //Works here too
> $query = My::SQL()->query("SELECT * FROM user");
> while($row = $query->fetch_object()) {
> echo $row->login."<p>";
> }
>
>
> ?>
What a lot of overhead and such.
I am glad I just use global $connection; whereever I need it.
begining of every script that need a db:
<? require_once('dnconnect.php'); ?>
then from a function:
function leaveThingsSimple(){
global $connection;
// do stuff here
}
Bad programming?
Says who?
And why?
Only use Objects if they add something to your code or structure somehow.
(Like PEAR:DB)
I really don't see the problem with making $connection global...
Regards,
Erwin Moller
Navigation:
[Reply to this message]
|