web-dev-qa-db-fra.com

Accéder à la connexion à la base de données externe en fonction?

J'ai le code suivant dans un article utilisant Sourcerer et cela fonctionne bien, mais j'aimerais déplacer la section de connexion de la fonction afin que je n'ai besoin de le créer qu'une seule fois pour plusieurs fonctions, mais j'ai du mal à la faire fonctionner. En dehors de Joomla, je l'aurais simplement appelé $ global ou $ db global, mais aucun des deux ne fonctionne.

Code de travail:

    function getclientstock($client) {


$option=array();
$option['driver']   = 'mysql';            // Database driver name
$option['Host']     = 'localhost';    // Database Host name
$option['user']     = 'user';       // User for database authentication
$option['password'] = 'pass';   // Password for database authentication
$option['database'] = 'database';      // Database name
$option['prefix']   = '';             // Database prefix (may be empty)
$db=JDatabaseDriver::getInstance($option);

    $query=$db->getQuery(true);
    $query->select($db->quoteName(array('unit_imei' , 'client')));
    $query->from($db->quoteName('connections'));
    $query->where($db->quoteName('client') . ' = ' . $db->quote($client));
    $db->setQuery($query);
    $result=$db->loadAssocList();
    return $result;
};
2
ruraldev

Si vous exécutez plusieurs fonctions sur la même page, vous pouvez configurer la connexion à la base de données, puis la transmettre aux différentes fonctions.

Jetez un coup d'œil à cette réponse sur Stack OverFlow: https://stackoverflow.com/questions/11492285/the-correct-way-to-include-connection-using-mysqli

<?php 
    $option=array();
    $option['driver']   = 'mysql';            // Database driver name
    $option['Host']     = 'localhost';    // Database Host name
    $option['user']     = 'user';       // User for database authentication
    $option['password'] = 'pass';   // Password for database authentication
    $option['database'] = 'database';      // Database name
    $option['prefix']   = '';             // Database prefix (may be empty)
    $db=JDatabaseDriver::getInstance($option);   

    function getclientstock($db, $client) {

        $query=$db->getQuery(true);
        $query->select($db->quoteName(array('unit_imei' , 'client')));
        $query->from($db->quoteName('connections'));
        $query->where($db->quoteName('client') . ' = ' . $db->quote($client));
        $db->setQuery($query);
        $result=$db->loadAssocList();
        return $result;
    };

    function setclientstock($db, $client) {
      // code here...

    };

?>
1
NJA