Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql过程和PHP数据库连接存在奇怪的问题_Php_Mysql - Fatal编程技术网

mysql过程和PHP数据库连接存在奇怪的问题

mysql过程和PHP数据库连接存在奇怪的问题,php,mysql,Php,Mysql,我有两个完全独立的查询,它们被转移到程序中。当它们是临时查询时,它们运行得很好,但现在我存储了它们,事情变得很奇怪 PHP调用一个类方法,该类方法返回一个进程的值。然后调用第二个方法并失败。当我直接从命令行运行PHP未能提供给我的run proc时,它会给出很好的结果。这当然很奇怪 有人能告诉我我是否遗漏了什么吗?我很乐意发布一些代码,但为了时间的利益,我想我会先问一下,看看这是否是一个常见问题 这是连接的功能 function connect() { $conn = mysql_co

我有两个完全独立的查询,它们被转移到程序中。当它们是临时查询时,它们运行得很好,但现在我存储了它们,事情变得很奇怪

PHP调用一个类方法,该类方法返回一个进程的值。然后调用第二个方法并失败。当我直接从命令行运行PHP未能提供给我的run proc时,它会给出很好的结果。这当然很奇怪

有人能告诉我我是否遗漏了什么吗?我很乐意发布一些代码,但为了时间的利益,我想我会先问一下,看看这是否是一个常见问题


这是连接的功能

function connect()
{
    $conn = mysql_connect($host, $user, $pass);
    if(!$conn){
        echo 'Error: cannot connect';
    }else{
        $selectDB();
    }
}

这是失败的进程:

BEGIN
SELECT name FROM source ORDER BY name ASC;
END
这是第一个返回结果的过程

BEGIN
SELECT cpw, cpw_id FROM cpw ORDER BY cpw ASC;
END

如果不先看到代码,很难说。我可以向你保证这不是正常的行为。从您对OP的评论来看,在第一次查询之后,您的用户凭据似乎失败了。我会检查以确保在请求之间没有任何内容覆盖或修改它们


在这一点上,查看建立连接的代码段并调用进程将很有帮助。

查看代码将提供更具体的帮助,但是您是否已经检查过进程中是否存在可能会覆盖您的连接凭据的变量名冲突?

如果
函数connect()
您发布的是真正的代码(而不是SO的缩写版本),您有“问题”(和生命周期)$函数中的主机、$user和$pass未知。即有效地
mysql\u连接(null,null,null),php mysql扩展尝试根据ini参数
mysql.default\u host
mysql.default\u user
mysql.default\u password
建立默认连接


如果将错误报告设置为E_ALL(例如,在函数调用之前通过
error_reporting(E_ALL)
),您应该会收到一些“undefined variable”(未定义变量)消息

mysql输出什么错误消息
mysql\u error()
?嗨,佩卡,下面是一个不断出现的问题:PHP警告:mysql\u connect():拒绝用户'SYSTEM'@'localhost'的访问听起来你的凭据不正确,正在取消设置,或者类似的事情。我想可能正在取消设置,因为在我将这些查询转移到过程之前,一切都很好。也没有对数据库连接脚本做任何更改,所以这真的很奇怪。您发布的代码没有给我们多少上下文。你在哪里查询?嘿,乔纳森,我马上发布连接方法。。不,我没有。。。这是一个伟大的观点。我现在检查一下。谢谢brbHey Zen,我看了看,没有冲突。我有点希望是这样。好的-用户应该是“系统”而主机应该是“本地主机”?我假设您在本地系统上,所以“localhost”很可能是正确的,但是用户名应该是“system”吗?这也让我感到奇怪,因为我以前从未见过这样的情况。通常是“根”,但不是系统。我在本地计算机上,但我的数据库在网络上的VPS上。这似乎表明这些凭据被重置或意外更改。它拒绝对系统的访问,因为它显然需要根。您是否尝试过一些非常简单的调试,例如,在调用连接方法和过程时,将用户名、主机和pass信息发送到屏幕或日志,以验证它们是否正确,并可能缩小更改的范围(似乎是这样)。