Joomla 3.1:从外部PHP访问数据库

cot*_*y89 5 php mysql joomla pdo

我有一个外部PHP脚本,并且正在使用PDO这样进行查询:

try
{
    $dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password);
    $sql = "SELECT * FROM $table WHERE userName=:userName";
    $stmt = $dbh->prepare($sql);
    $stmt->bindParam(':userName', $userName);
    $stmt->execute();
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
    $dbh = null;
}
catch(PDOException $e)
{
    echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)

由于我是Joomla / PHP的新手,因此我不确定这是否是一个好习惯。我当前的设置是否存在安全风险?我刚刚发现可以在外部脚本中使用JFactory,但是我只是想知道在我的情况下是否必须更改为JFactory,还是可以坚持使用PDO?

Job*_*ose 5

尝试这个 ,

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

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

$app = JFactory::getApplication('site');
$app->initialise();
$db = JFactory::getDBO();// Joomla database object
Run Code Online (Sandbox Code Playgroud)

有关Joomla数据库使用的更多信息,请选择operation

与显式提供数据库名称和主机名相比,这要好得多。

希望它有意义。