【问题标题】:Why the require_once is not working in following scenario?为什么 require_once 在以下情况下不起作用?
【发布时间】:2015-05-26 04:59:45
【问题描述】:

我在一个名为 sample.php 的 PHP 文件中跟踪了一个函数的代码:

function deleteValue($value) {

  $servername = "localhost";
  $username = "root";
  $password = "jumbo";
  $dbname = "demo";

  // Create connection
  $conn = new mysqli($servername, $username, $password, $dbname);
  // Check connection
  if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
  }

  $sql = "DELETE FROM user WHERE value = '$value'";

  if ($conn->query($sql) === TRUE) {
    $conn->close();     
    return true;
  } else {
    $conn->close();     
    return false;
  }  
}

其实在这个文件(sample.php)里面有太多这样的函数,重复下面的数据库连接代码:

      $servername = "localhost";
      $username = "root";
      $password = "jumbo";
      $dbname = "demo";

      // Create connection
      $conn = new mysqli($servername, $username, $password, $dbname);
      // Check connection
      if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
      }

然后,我在同一个文件夹中创建了一个名为db.php 的文件,并将上面的代码添加到其中。在文件'sample.php'的开头使用require_once('db.php');,我将文件包含在上面的代码中。最后代码出现如下:

require_once('db.php');
function deleteValue($value) {

      $sql = "DELETE FROM user WHERE value = '$value'";

      if ($conn->query($sql) === TRUE) {
        $conn->close();     
        return true;
      } else {
        $conn->close();     
        return false;
      }  
    }

现在它给了我 500 内部服务器错误。

即使我尝试通过将 db.php 中的整个代码粘贴到文件 sample.php 的开头而不是包含该文件,如下所示,但我仍然收到 500 Internal Server Error。

$servername = "localhost";
  $username = "root";
  $password = "jumbo";
  $dbname = "demo";

  // Create connection
  $conn = new mysqli($servername, $username, $password, $dbname);
  // Check connection
  if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
  }

function deleteValue($value) {

  $sql = "DELETE FROM user WHERE value = '$value'";

  if ($conn->query($sql) === TRUE) {
    $conn->close();     
    return true;
  } else {
    $conn->close();     
    return false;
  }  
}

有人可以纠正我在代码中犯的错误吗?

提前致谢。

【问题讨论】:

  • 错误是什么?你的错误日志是怎么说的?
  • 您可以在没有此代码的情况下访问您的页面吗?内部服务器错误在我看来更像是服务器配置错误——由你的 htaccess 文件或 apache 的 httpd.conf 文件引起——而不是你的 PHP 脚本。

标签: php mysql database-connection require-once


【解决方案1】:

我会建议你在 db_config.php 文件中你应该只使用这样的数据库配置和函数:

$servername = "localhost";
$username = "root";
$password = "jumbo";
$dbname = "jumbo_jet";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_errno) {
    echo "Failed to connect to MySQL: (" . $conn->connect_errno . ") " . $conn->connect_error;
}

common.php 中使用如下代码:

require_once("db_config.php");

function deleteToken($receivedToken) {
  global $conn;
  $sql = "DELETE FROM user_login WHERE token = '$receivedToken'";

  if ($conn->query($sql) === TRUE) {
    return true;
  }
  return false;
}

我希望它对你有用。如果还有什么,请告诉我。

【讨论】:

  • 我正在做的事情也是如此。如果你仔细看我的问题,你会知道我做过同样的事情,但得到了 500 内部服务器错误。
  • 那么我认为您还有其他问题,不是 PHP 脚本错误。对不起!
猜你喜欢
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 2020-05-11
  • 1970-01-01
  • 1970-01-01
  • 2017-11-26
  • 2010-12-29
  • 1970-01-01
相关资源
最近更新 更多