Access joomla's helpers from outside php file

687 views Asked by At

I'm trying to access joomla's methods from a php file on the same server.

$shop_directory = '/var/www/components/com_shop';
$base_directory = '/var/www';

define( '_JEXEC', 1 );
define( 'JPATH_BASE', $base_directory);
define( 'JPATH_COMPONENT', $shop_directory);
define( 'DS', '/' );
require_once(JPATH_COMPONENT.DS.'helpers'.DS.'helpers.php');
require_once(JPATH_COMPONENT.DS.'helpers'.DS.'dbo.php');
require_once(JPATH_BASE.DS.'libraries'.DS.'joomla'.DS.'factory.php');

When i try to insert data on the database, nothing happens

$db = JFactory::getDbo('database_name');
$query = "INSERT INTO `payment_info` VALUES ( 
                    '',
                    '".$order_id."',
                    '".$customer_id."');";
$db->setQuery($query);
$db->query();

Thx

1

There are 1 answers

2
Jobin On BEST ANSWER

Try this,

define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(__FILE__) );//this is when we are in the root
define( 'DS', DIRECTORY_SEPARATOR );

require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();

$db = JFactory::getDbo();//Db object do not require database name
$query = "INSERT INTO `payment_info` VALUES ( 

                    '".$order_id."',
                    '".$customer_id."')";
$db->setQuery($query);
$db->query();

Hope its works..