php:mysql_connect()失败,没有错误消息

我从CentOS 5.6上的命令行运行一个简单的测试脚本,其中PHP包安装在 CentOS / RHEL 5.6上的PHP 5.3 </ strong>。 </ p>

< p> PHP在所有其他情况下运行正常,但是当我点击 mysql_connect()</ code>时,它会失败而没有错误。 </ p>

如果我运行</ p>

  $ php -m 
</ code> </ pre>

I 我没有看到MySQL是一个已安装的模块。</ p>

但我已将 extension = mysql.so </ code>添加到我的php.ini并重新启动。</ p>

输出'rpm -qa | grep php'</ strong> </ p>

  php-common-5.3.10-1.w5 
php-5.3.10-1.w5
php-cli-5.3.10 -1.w5
</ code> </ pre>

输出'yum install php-mysql'</ strong> </ p>

   - &gt; 缺少依赖关系:包php-mysql-5.1.6-27.el5_7.5.x86_64(更新)
php-pdo-5.1.6-27.el5_7需要php-common = 5.1.6-27.el5_7.5 来自更新的.5.x86_64解决了问题
  • &gt; 缺少依赖关系:包php-pdo-5.1.6-27.el5_7.5.x86_64(更新)需要php-common = 5.1.6-27.el5_7.5 错误:缺少依赖关系:php-common = 5.1。 软件包php-pdo-5.1.6-27.el5_7.5.x86_64(更新)需要6-27.el5_7.5 错误:缺少依赖项:需要php-common = 5.1.6-27.el5_7.5 通过包php-mysql-5.1.6-27.el5_7.5.x86_64(更新) 您可以尝试使用--skip-broken来解决问题 您可以尝试运行:package-cleanup --problems \ n package-cleanup --dupes rpm -Va --nofiles --nodigest 程序包清理可以在yum-utils包中找到。 </ code> </ pre> </ div>

展开原文

原文

I am running a simple test script from the command line on CentOS 5.6 with the PHP package installed from PHP 5.3 on CentOS/RHEL 5.6.

PHP runs fine in all other cases but when I hit mysql_connect() it fails without error.

If I run

$ php -m

I am not seeing MySQL as an installed module.

However I have added extension=mysql.so to my php.ini and rebooted.

Output of 'rpm -qa | grep php'

php-common-5.3.10-1.w5
php-5.3.10-1.w5
php-cli-5.3.10-1.w5

Output of 'yum install php-mysql'

  --> Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-mysql-5.1.6-27.el5_7.5.x86_64 (updates)
php-pdo-5.1.6-27.el5_7.5.x86_64 from updates has depsolving problems
  --> Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-pdo-5.1.6-27.el5_7.5.x86_64 (updates)
Error: Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-pdo-5.1.6-27.el5_7.5.x86_64 (updates)
Error: Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-mysql-5.1.6-27.el5_7.5.x86_64 (updates)
 You could try using --skip-broken to work around the problem
 You could try running: package-cleanup --problems
                        package-cleanup --dupes
                        rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.

2个回答



 我没有将MySQL视为已安装的模块。
</ code> </ pre>

< p>你安装了吗?</ p>

  #yum install php-mysql 
</ code> </ pre>

(来自同一个回购你 安装 php </ code>来自。)</ p>

编辑:</ p>

运行:</ p>

   yum --enablerepo = webtatic install php-mysql 
</ code> </ pre>

这告诉yum从webtatic存储库获取软件包(除了系统配置的存储库)。 如果您想在系统启用的存储库中使用webtatic,请运行:</ p>

  yum --enablerepo = webtatic install webtatic-release 
</ code> </ pre>
</ div >

展开原文

原文

 I am not seeing MySQL as an installed module.

Did you install it?

# yum install php-mysql

(from the same repo you installed php from).

EDIT:

run this:

yum --enablerepo=webtatic install php-mysql

this tells yum to get the packages from webtatic repository (in addition to system configured repositories). If you want webtatic among system enabled repositories, run:

 yum --enablerepo=webtatic install  webtatic-release

dongxing8009
dongxing8009 你说对了。 谢谢!
8 年多之前 回复
dongyun65343
dongyun65343 好的,看看我的编辑
8 年多之前 回复
duanchui1251
duanchui1251 啊,有错误。 往上看
8 年多之前 回复
duandan9680
duandan9680 你还没有安装php-mysql rpm包。 再次运行yum install php-mysql,如果失败则添加此命令的输出。
8 年多之前 回复
dongyi1939
dongyi1939 附加输出
8 年多之前 回复
duanfanta6741
duanfanta6741 请附加rpm -qa |的输出 grep php命令和上面问题中index.php文件的前10行
8 年多之前 回复
duanquanzhi5560
duanquanzhi5560 不,php -m没有显示任何这些
8 年多之前 回复
dougu3290
dougu3290 php -m列出模块mysql,mysqli和pdo_mysql现在不是其他人吗?
8 年多之前 回复
dougu1045
dougu1045 重新启动。 仍然没有运气。 获取:致命错误:在第7行的/home/app/index.php中调用未定义的函数mysql_connect()
8 年多之前 回复
douji1058
douji1058 php不是服务,所以不需要重启; 当你自己安装php时,作为一个apache模块,它是需要重新加载的apache; 但是在这种情况下你只是安装了一个php库,mysql连接应该开箱即用(如果你使用了yum,肯定会安装mysql包,只检查它是否正在运行)。
8 年多之前 回复
dre93205
dre93205 好的,已安装。 顺便说一句,有没有办法重新启动PHP没有重新启动服务器? 通常我可以重新启动apache以查看更改生效但在此实例中无法生效。
8 年多之前 回复
douzhanhui5662
douzhanhui5662 你是怎么安装包php的? 如果你用yum安装它,在命令行上运行,yum以root身份安装php-mysql
8 年多之前 回复
doumaji6215
doumaji6215 如果你安装了yum,“yum install php-mysql”应该这样做,如果它还没有安装的话
8 年多之前 回复
douhuang5623
douhuang5623 我怎么做?
8 年多之前 回复



首先,一些建议:停止使用mysql库并使用PDO或至少使用mysqli库。</ p>

< p>现在进行一些故障排除帮助:第一步是100%确定mysql正在加载。 使用以下命令创建脚本(基于Web):</ p>

phpinfo(); </ p>

确认此页面上的某个位置有一个块,指示mysql扩展名 正在加载。</ p>

无论您在哪里测试都不确定错误,在调用mysql_connect之前添加以下行:</ p>

  ini_set(  'display_errors',1); 
ini_set('log_errors',1);

error_reporting(E_ALL | E_STRICT);
</ code> </ pre>

这将确保您不会在连接之前抑制其他地方的错误。 有些框架有时会这样做。</ p>

如果模块正在加载,并且添加了错误记录代码,则仍然无法获得有效错误。 我尝试在命令行php脚本中连接。 查看php.ini文件以查看“error_log”设置为什么。 这是它将记录到的默认日志 - 有时基于http的设置会覆盖日志记录,因此即使出现错误,您也看不到或找不到它们。 命令行php脚本会将其解决。</ p>

最后但并非最不重要的是,您始终可以将连接字符串发布到此帖子。 尝试使用mysql命令从服务器上的命令行连接作为脚本,使用与mysql_connect相同的凭据。 您可能能够正常连接但凭据不良。</ p>

如果模块未加载,请尝试找到模块所在的确切位置,并将完整路径放入php.ini中 。 百胜有时会安装东西,而不是php.ini正在寻找的东西。 在Yum安装结束时,它有时会告诉你路径,如果没有,用蛮力找到它,请执行以下操作:</ p>

  cd / 
find。 -name'mysql.so'
</ code> </ pre>

所以在php.ini中,而不是</ p>

  extension = mysql 的.so 
</代码> </ PRE>

把</ p>

 <代码>延长= /路径/到/找到/ mysql.so 
</ 代码> </ pre>

祝你好运!</ p>
</ div>

展开原文

原文

First, some advice: stop using mysql libraries and use PDO or at least the mysqli libraries.

Now for some troubleshooting help: the first step is to be 100% sure the mysql is loading. Create a script (web based) with:

phpinfo();

Confirm that somewhere on this page there is a block indicating that the mysql extension is being loaded.

Wherever you are testing an are uncertain of errors, right before you call mysql_connect add these lines:

ini_set('display_errors', 1);
ini_set('log_errors', 1); 
error_reporting(E_ALL | E_STRICT);

This will ensure you aren't suppressing the errors somewhere else before the connect. Some frameworks sometimes do this.

If it's indeed the module is loading and with the added error logging code you still don't get a valid error. I'd try connecting in a command line php script. Look in the php.ini file to see what "error_log" is set to. This is the default log it will it will log to--sometime http based settings override logging, so even if errors are thown, you don't see or can't find them. A command line php script factors this out.

Last but not least, you can always post your connection string to this post. Try connecting from the command line on the server as your script using the mysql command with the same credentials as your mysql_connect. You might be able to connecting just fine, but have bad credentials.

If the module is not loading, try to find exactly where the module resides and put the full path into the php.ini. Yum sometimes installs stuff not where php.ini is looking for it. At the end of the Yum install, it sometimes tells you the path, if not, to find it with brute force, do this:

cd /
find . -name 'mysql.so'

so in the php.ini, instead of

extension=mysql.so

put

extension=/path/to/found/mysql.so

Good luck!

doudou201701
doudou201701 我添加了一些帮助来找到yum可能已经转储mysql库的地方,有时它不是php.ini期望它们的位置。
8 年多之前 回复
dongshu7162
dongshu7162 你运行phpinfo()是100%确定它没有加载(致命错误确实指向了,但我喜欢更加确定)
8 年多之前 回复
dongxikuo5171
dongxikuo5171 我收到以下错误:致命错误:在第7行的/home/app/index.php中调用未定义的函数mysql_connect()即使我现在已经安装了MySQL'yum install php-mysql,模块似乎也没有加载 “
8 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐