php - PHP 中的连接错误

标签 php mysql connection database-connection

哦,我刚开始学习 PHP 和 MySQL。一切都很顺利,直到我想到了这件事。 这就是问题所在。 我在同一目录中有两个 php 文件。

mysql.php--->

<?php
require("connect.php")or die(mysql_error());
?>

connect.php--->

<?php
error_reporting(0);
$connect=mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("phpacademy")or die(mysql_error());
echo"Connected!";
?>

问题是每当我直接运行 connect.php 脚本时,它都工作正常。 但是当我运行 mysql.php 连接到其他脚本时,它会出现以下错误:

警告:要求(1):无法打开流:第 3 行 C:\xampp\htdocs\stckovrflw1\mysql.php 中没有这样的文件或目录

fatal error :require(): Failed opening required '1' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\stckovrflw1\mysql.php on line 3

它没有得到文件,即使它存在并且拼写显然没有错误。 最令人惊奇的是,一旦我删除 or die() ,一切都会像魅力一样运作。 因为我是初学者,所以我不知道发生了什么。我认为 or die() 只是为了帮助开发人员或用户查看确切的错误,但在这种情况下,它本身会导致错误。

帮忙!!!

提前致谢...:)

P.S.:我也在代码中提到的本地主机上运行。

最佳答案

or 的优先级高于 require/require_once。因此 php 计算

('connect.php') or die("blah blah")

在将结果传递给 require 之前。 Or 采用两个 bool 操作数。 ('connect.php') 的计算结果为 true 因此整个表达式为真并且

要求为真;

被调用。

require 将字符串作为参数,因此 true 会被 php 强制转换为 1。

所以在你的情况下它变成了require 1

生成打开失败错误

bugs.php.net 上报告的错误 https://bugs.php.net/bug.php?id=15438说:

"Because include() is a special language costruct, parentheses are not needed around its argument. Take care when comparing return value.

<?php
// won't work, evaluated as include(('vars.php') == 'OK'), i.e. include('')
if (include('vars.php') == 'OK') {
    echo 'OK';
}

// works
if ((include 'vars.php') == 'OK') {
    echo 'OK';
}

关于php - PHP 中的连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21985850/

相关文章:

c# - 如何使用 .NET、C# 和 WPF 检查 Internet 连接

php - 如何使用 fpdf 在分页符上重复标题

php mysql 查询为 null 或为空

c# - 如何使用 mysql 数据库为 Asp.net 中的每个页面创建 session 和登录凭据?

php - 使用 PHP 制作的基于浏览器的策略游戏如何运行?

oracle - 如何获取 Oracle 的 SID 列表

http - BlackBerry 应用程序无法与服务器建立 Http 连接

php - 在 PHP 中将百分比值转换为十进制值

php - 如何在mysql中选择不同列的总和

javascript - requestFrameAnimation 使用持续时间时断断续续