Topic: Connect to Database
sae
avatar
Helper
Helper
Posts: 312

Posted:
13.Jun 2006 - 05:41

Hello,

I am trying to create a custom block. What is postnukes function to connect to the database and to de-connect from it?

thanks
HalbrookTech
online
avatar
Legend
Legend
Posts: 6594

Posted:
13.Jun 2006 - 12:14

Look at the first.php in the /Example/pnblocks folder.
sae
avatar
Helper
Helper
Posts: 312

Posted:
15.Jul 2006 - 23:57

I took a look in there but I still confused as to how to connect to the database. I read somewhere that there is a snippet of code like this

Code

$dbconn =& pnDBGetConn(true);
TTH_Erik
avatar
Freshman
Freshman
Posts: 11

Posted:
16.Jul 2006 - 20:22

Normally you'd place a functions connecting to the database in the API. If you look at first.php you'll see it calling API functions several times. From line 107 in first.php:

Code

// Call the modules API to get the items
    $items = pnModAPIFunc('Example',
                          'user',  
                          'getall');

This will call the Example_userapi_getall() function located in pnuserapi.php. If you open this file and locate the function you'll see that it's creating a connection to the database..

Code

$dbconn =& pnDBGetConn(true);

.. and later using that connection to execute SQL.

Code

$result = $dbconn->SelectLimit($sql, $numitems, $startnum-1);

If you don't need to set a limit you can also execute the SQL like this

Code

$result =& $dbconn->Execute($sql);

When you're done fetching the result you should close the result set before returning the data you were looking for

Code

$result->Close();


--
Erik from www.TenTonHammer.com
sae
avatar
Helper
Helper
Posts: 312

Posted:
16.Jul 2006 - 20:48

Thanks for the great info. Is there any advantage to using PostNuke's method of connection to the database over using non-PostNuke coding? i.e :

Code

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');




edited by: sae, Jul 16, 2006 - 03:49 PM
TTH_Erik
avatar
Freshman
Freshman
Posts: 11

Posted:
16.Jul 2006 - 21:09

It's generally a good idea to use core functions for security reasons, but it's also very practical.

You should at least not write that code in every function.. just imagine the nightmare if you one day have to change the password for example!

You could have that code in an own file and include it somehow, but why go through that stuff if you can just call the core function and be done with it? :)

--
Erik from www.TenTonHammer.com