我正在使用PHP PDO连接到我的数据库并运行一些查询,然后在某些表单上使用查询返回.
也就是说,我有一个选择,它由来自查询的值填充.
我创建了两个连接数据库和数据的函数,但我想知道是否可以创建一个全局变量,因为我使用的是“New PDO”.
/** Conecta com as impressas **/
function impressoras()
{
$PDO2 = new PDO('MysqL:host=localhost;dbname=ti','root','xxx');
$PDO2->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
global $stmt;
$stmt = $PDO2->prepare("SELECT * FROM league");
$stmt->execute();
$result = $stmt->fetchAll();
return $result;
echo json_encode($user_arr);
}
function carrefour()
{
$PDO3 = new
PDO('MysqL:host=localhost;dbname=ti','root','xxx');
$PDO3->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
global $stmt;
$stmt = $PDO3->prepare("SELECT * FROM lol");
$stmt->execute();
$result = $stmt->fetchAll();
return $result;
echo json_encode($user_arr);
}
解决方法: 你可以用简单的旧程序风格“共享”相同的数据库连接对象(PDO):-)这是一个简单的例子:
// config.PHP
define('DB_DSN', 'MysqL:host=127.0.0.1;dbname=test;charset=utf8');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
// database.PHP
function db()
{
static $db = null;
if ($db === null) {
$db = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD, array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_PERSISTENT => false,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::MysqL_ATTR_INIT_COMMAND => "SET NAMES utf8 COLLATE utf8_unicode_ci"
));
}
return $db;
}
用法
function test1()
{
$pdo = db();
$stmt = $pdo->prepare("SELECT * FROM league");
$stmt->execute();
$result = $stmt->fetchAll();
return $result;
}
如果您更喜欢更专业的解决方案,那么请查看PHP-DI并使用依赖注入. (编辑:北几岛)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|