首页 > 编程技术 > php

php mysql_connect() 不支持的解决方案

发布时间:2016-11-25 17:38

mysql_connect()函数是一个php与mysql数据库连接函数,如果你的php不支持mysql_connect()函数就是你的数据库不能与mysql连接了,下面我来总结一下解决mysql_connect()不能使用的方法。

如果是apache环境我们参考下面办法解决


一、在系统的 system32(C:/windows/system32)目录下缺少libmysql.dll文件,解决方法是找到php目录下的libmysql.dll,并将libmysql.dll复制到C:/ windows/system32目录中,然后重新启动Web服务。

二、在C:/windows目录下的php.ini文件中,没有将“;extension=php_mysql.dll”中的前面一个“;”去掉,所以不能使用相应功能,解决方法是打开php.ini文件找到;extension=php_mysql.dll    改成

extension=php_mysql.dll    //去掉前面的;使之生效

三、Mysql目录没有读取权限,正确的目录权限如下:

administrator   完全控制
system          完全控制
users           读取和运行+列出文件夹目录+读取
其他的用户权限全部删除,然后重启MYsql服务和Web服务
(注:以上设置无安全设置;建议修改后重启一下服务器)
重要,还要检查php.ini文件的权限,检查复制到system32里面的php文件的权限,检查php安装目录文件夹的权限.至少要有users默认权限.temp文件夹至少要有users组修改级别权限.
但是,所有的方法都试过了,还是没能解决,于是我搜索了一下mysql_connect()不支持,
把以下代码保存为phpinfo.php:
<?php
phpinfo();
?>


如果iis环境我们参考下面办法解决

在整合IIS和PHP时需要注意的:
安装PHP
(1) 解压缩下载的php-5.1.4-Win32.zip文件,并将其复制到:
        X:/Server_Core/PHP ;
(2) 进入X:/Server_Core/PHP文件夹,将php.ini-dist 重命名为 php.ini ;
(3) 打开php.ini文件,找到:
        extension_dir = "./"
        将其改为;
        extension_dir = "X:/Server_Core/PHP/ext"
(4) 找到:Windows Extensions
        在Windows Extensions下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)
        extension=php_mbstring.dll
        extension=php_gd2.dll
        extension=php_mysql.dll
(5) 找到:
        disable_functions =
改为:
        disable_functions =
passthru,exec,system,popen,chroot,escapeshellcmd,escapeshellarg,shell_exec,proc_open,proc_get_status其中第四条:
--------------------------------------------------------------------------------

(4) 找到:Windows Extensions
        在Windows Extensions下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)
        extension=php_mbstring.dll
        extension=php_gd2.dll
        extension=php_mysql.dll ----->就是因为这行前面的分号“;”没去掉才导致上述报错的,即去掉分号,重启一下Apache服务器即可!!!

本文章来给大家介绍关于php-fpm 启动报please specify user and group other than root, pool ‘default’的解决办法。

安装PHP ,配置fpm 成功后启动发现报错:

Starting php_fpm Aug 03 06:51:54.269165 [ERROR] fpm_unix_conf_wp(), line 124: please specify user and group other than root, pool ‘default’

解决办法:

修改php-fpm.conf

 代码如下 复制代码

 <!--  <value name="user">nobody</value>   -->
    Unix group of processes
 <!--  <value name="group">nobody</value>   -->

修改成 nginx 指定的用户与组

 <value name="user">www</value>
 Unix group of processes
 <value name="group">www</value>

或者我们也可以这样配置

 代码如下 复制代码

<!-- <value name="user">nobody</value> -->

改成


<value name="user">nobody</value>

启用nobody用户选项,保存退出,然后再重新启动php-fpm:


修改启动:

 代码如下 复制代码

[root@localhost conf]# php-fpm start
Starting php_fpm  done

中文乱码多半是编码导致的我们只要调整一下输出编码即可解决中文乱码问题,下面我们看simplexml_load_file中文乱码解决办法。

在PHP5.0 中,simplexml_load_file()是一个很好的读取和处理XML文件的函数,但是在读取和处理中文时会出现乱码,经过研究发现,如果是中文内容,必须经过iconv编码转换,否则显示为乱码。

 代码如下 复制代码

$xml=simple_load_file('xml文件');

  foreach($xml->soft as $temp){

  echo $temp->name; //这就是软件名称了。 

  echo $temp->mem; //这就是软件说明了。

}

英文正确中文乱码,这个我估计就是编码问题了。

后来网上找到了相关文章,如核心一句

1、如果xml的encoding与文件类型不符,立刻报错
2、simplexml可以处理gbk的XML,即文件内容和encoding都为gbk(ANSI格式)
3、不管文件内容是什么,处理完了,都是UTF8.


具体方法如下:

 代码如下 复制代码

$chname = iconv('utf-8', 'gb2312', $table->param["name"]);

实现将编码为'utf-8'的XML文件内容转换为 gb2312 格式的内容。

中文编码采用gb2312格式输出。

还有一种办法本人没测试过直接摊贩页面编码转成uft8

 代码如下 复制代码

header("Content-type: text/html; charset=utf-8");
//因为wordpress默认编码是utf-8,但IE默认识别为gb2312,所以用header发一下编码
$url="http://www.111cn.net";
$xml =  simplexml_load_file($url);
//载入远程XML文件
$title=$xml->channel->title;
//根据节点获取博客标题(不循环)
echo $title."<br />";
//如果节点循环了,可以用foreach循环取出
foreach($xml->channel->item as $item){
 echo $item->title."<br />";
}
//循环取出文章标题

本文章来给大家介绍关于在window下PHP调用curl报内存不够(curl out of memory)错误的解决办法,有碰到此类问题的朋友可参考。


今天在调用新浪微博api的时候(官网下载的sdk),发现发布图片微博的时候不成功,报错说:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 4294962523 bytes) in XXXsdksinasaetv2.ex.class.php on line 396
实在想不明白啊,不就上传个图片嘛,至于需要这么大内存吗!?

开始想官网提供的sdk,如果是代码有问题肯定其他开发者也碰到了,于是乎去新浪微博开发平台找答案,怪的很没人说起(不知道是大家都没碰到这问题还是咋的)。没办法,只能请谷歌。

一查还真有点头绪了,大部分出现这个问题的都是因为:用curl请求https,由于在获取证书的时候出问题了,这帖子感觉说的还行:CURLOPT_SSL_VERIFYPEER惹得祸,感兴趣的童鞋可以去看一下。但这个不是我这的原因,不扯远了,继续解决自己的错误。

照上面的帖子行不通,继续找。

但是这个里面的一句话给提醒了我,"出问题的服务器是Windows,工作的是linux。"。这有戏啊,问题可能出在php版本或跟操作系统上,于是把代码那linux上一测试,发现还真的没问题,大喜。
于是加了个关键字"window"重新搜了一遍,还真是这样,php官网果断的出现在了搜索结果里面里面,答案就在这:http://windows.php.net/。

 

看一下自己php的版本 5.2.5,活该出问题,不勤快点升级。

不多说,不过在写文章的时候又发现了这个(使用微博api发带图片的微博,提示内存不够,这哥们可比我惨多了,估计把所得内存都加上了之后才发现有点不头,哈哈),得来的全不费功夫啊(可惜这时候问题已经被我发现了,只是还没解决)。

解决方法:简单的解决方法就是升级一下php,敬业一点的方法当然就是自己改改代码,怎么改这 是个问题,我表示我不敬业,而且都懒得去升级。

以前我做一个获取url的功能,当时使用的是在linux系统,结果我使用REQUEST_URI可以,但在windows中好像方法不一样了,今天我又看到这样一篇文章,现在转给各位参考。

 

php在windows IIS平台运作的时候,有些东西和在Linux apache下不太一样。

今天遇到个神奇的问题,就是用$URI=$_SERVER["REQUEST_URI"];

在linux下看到的是urlrewrite静态化以后的地址 /exy/exk/list-3/

windows下返回的是原来的地址 /exy/article.php?page=3

这时候发现windows下有个办法HTTP_X_REWRITE_URL

这个数组,linux下没有
所以代码小修改下以兼容两个平台。(更换服务器真是各种水土不服)

 代码如下 复制代码

$URI = $_SERVER["HTTP_X_REWRITE_URL"];
if($URI==null){
$URI=$_SERVER["REQUEST_URI"];
}
//print_r($_SERVER);
echo $URI;

这样就两个平台都能正确的显示了。

标签:[!--infotagslink--]

您可能感兴趣的文章: