php - WordPress 主题功能在调用时不起作用

标签 php mysql mysqli

我有一个 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/

相关文章:

php - 如何从 MYSQL-加密字符错误中检索图像

php - 由于时间戳 now(),SQL 插入忽略不起作用

mysql - SELECT 查询偶尔会执行很长时间

php - 如何从一个表中获取变量并将其插入到另一个表中

php - 从 MySQL INSERT 查询字符串中提取括号内的值

php - 是否可以使用 php 向另一台服务器发出请求并获得其响应?

php - sql中日期列的groupby周

php - 对象无法在 MySQLi PHP 中转换为字符串

php - 如何从 COUNT(*) 结果中减去特定数量

php - 在WordPress中从functions.php执行更新查询