我有一个 WordPress 网站,我想在我的 functions.php 中保存并进行数据库连接
所以我可以在我的模板中调用它。 以下是 functions.php
中的函数代码<?php
function dbconnd() {
$server = "localhost";
$duser = "wpuser";
$dpass = "wppass";
$dbname = "wpdb";
$conn = new mysqli($server, $duser,$dpass, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
}
?>
因此,在我的 main.php 中,如果我调用 dbconnd();
,它似乎不起作用,因为它会抛出 fatal error ,如下例所示:
Fatal error: Call to a member function query() on a non-object in /main.php on line 49
<?php
dbconnd();
$sql = "SELECT * FROM orderform WHERE status='last';";
$result = $conn->query($sql); //this is line 49
?>
但在下面的情况下,当我不调用该函数时,它可以正常工作
<?php
$server = "localhost";
$duser = "wpuser";
$dpass = "wppass";
$dbname = "wpdb";
$conn = new mysqli($server, $duser,$dpass, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM orderform WHERE status='last';";
$result = $conn->query($sql);
?>
最佳答案
按照您现在的方式,$conn
是仅在函数内部的局部变量。所以你无法通过这种方式获取函数外部的值。
最好的解决方案是这样的:
function dbconnd() {
$server = "localhost";
$duser = "wpuser";
$dpass = "wppass";
$dbname = "wpdb";
$conn = new mysqli($server, $duser,$dpass, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
else
return $conn;
}
然后当您要调用该函数时,运行以下命令:
$conn = dbconnd();
另外,不要忘记在调用它的 php 文件中包含或需要functions.php 文件。
关于php - WordPress 主题功能在调用时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34667745/