为啥 require_once 在以下情况下不起作用?
Posted
技术标签:
【中文标题】为啥 require_once 在以下情况下不起作用?【英文标题】: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 脚本。 【参考方案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 脚本错误。对不起!以上是关于为啥 require_once 在以下情况下不起作用?的主要内容,如果未能解决你的问题,请参考以下文章