文档章节

【PHP】Debug总览表

呢喃的猫咪
 呢喃的猫咪
发布于 2012/11/20 22:57
字数 1812
阅读 89
收藏 0

一、MySQL相关

1、mysql error Number 1005之errno150解决

mysql error Number 1005 can't creat table'\test\#sql-640_1.frm'(errno:150)

三种可能问题外键和被引用外键类型不一样,比如integer和double找不到要被引用的列表的字符编码不一样我中的就是第三种情况,在administrator里根本看不出表的字符编码,完全一样的列类型定义就是出现 mysql error Number 1005

can't creat table'\test\#sql-640_1.frm'(errno:150)错误。

主键和外键的字符编码不一致 ,改正对应的数据库存储引擎和字符编码即可!
-----------------------------------------------
CREATE TABLE IF NOT EXISTS T_AREA(
AREA_ID INT(4) NOT NULL AUTO_INCREMENT COMMENT 'ID',
AREA_NAME varchar(20) UNIQUE NOT NULL COMMENT '区域名',
SN varchar(20) UNIQUE NOT NULL COMMENT '区域编号',
PRIMARY KEY (AREA_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-----------------------------------------------
加上这个ENGINE=InnoDB DEFAULT CHARSET=utf8;  你的不一定是InnoDB 类型!

2、解决 phpMyAdmin 中文乱码的问题

    以下四点即可实现全站utf-8编码,而且在数据库中也不会有中文乱码

  1. 网页文件head设置编码<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  2. PHP页面在保存的时候使用utf-8编码保存,可以用记事本或convertz802转换文件

  3. 在MYSQL中新建数据库的时候数据库 选择utf-8_general_ci字符集为数据库连接校对,以及整理的字符集

    • 库里面 表table的 整理 设置为 utf-8_general_ci

    • 表里面的每个字段的 整理 都设置为 utf-8_general_ci

  4. 在PHP连接数据库的时候,也就是mysql_connect()之后加入

    • mysql_query("set names 'utf8' ");//注意是utf8,不是utf-8

    • 如果你的网页编码是gb2312,那就是 SET NAMES GB2312。但编辑员强烈推荐网页编码、MySQL数据表字符集、PHPmyAdmin都统一使用UTF-8。

    下面有图片显示步骤:

    1、在phpMyAdmin中新建数据库,选择整理以及Mysql连接校对的字符集都调为utf-8_general_ci

    2、下一步我们解决php文件的编码问题,如果你在eclipse中开发php web应用,那么直接右击你的项目名称,出来选项框,选择“属性”一栏,在文件编码中选择utf-8类型,这样你在该项目中新建的文件都继承了utf-8类型。


    3、在每个要显示在页面的文件中的head设置编码<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />



    4.在PHP连接数据库的时候,也就是mysql_connect()之后加入 mysql_query("set names 'utf8' ");

    好了~现在你就可以自由输入中文了,页面,数据库中都显示的不是乱码了,解决了~Good Luck

    设置编码的几种方式:

  • phpmyadmin主界面可以设置编码;

  • mysql控制台:

    • 查询 set names 'utf8';

    • 创建数据库 create databases dbname character set utf8;

    • 创建表 create table name()default charset=utf8;

  • 通过配置文件修改:\mysql\db.opt

    • 表编码不指定,默认就是数据库编码,表编码与数据库编码设置一致就不会乱码。


二、外接平台相关

1、【新浪】使用php的CURL函数curl_init初始化一个新的会话时出错

    使用php的CURL函数curl_init初始化一个新的会话时出现以下错误:

    Fatal error: Call to undefined function curl_init() in D:\apache2\htdocs\getinfo.php on line 8

    出现此错误的原因是因为服务器没有配置curl扩展。

    在PHP中配置并开启CURL的方法如下:

  • 在php安装目录下的ext目录里找到 php_curl.dll 文件。

  • 找到php目录下的 libeay32.dll和ssleay32.dll文件。

  • 把php_curl.dll、libeay32.dll、ssleay32.dll 、php5ts.dll复制到 %windir%/system32 (一般是C:\Windows\system32\)下

  • 打开php配置文件php.ini,找到extension=php_curl.dll把前面的分号去掉

  • 重新启动apache或IIS服务即可。

    启动成功后,可以运行phpinfo();函数查看相关php配置信息,找到以下信息,说明CURL配置成功。

三、LAMP相关

问题1:php访问mysql,Call to undefined function mysql_pconnect()

1 、打开mysql拓展。

php.ini里面;extension=php_mysql.dll去掉前面的分号.

2、WINDOWS系统下,需要将PHP/libmysql.dll和php5.dll 拷贝至:windows/system32下。

问题2:nginx站点编码设置

 vi  /usr/local/nginx/conf/nginx.conf

http {
    include       mime.types;
    default_type  application/octet-stream;
    charset  utf-8;
    。。。


问题3:Class 'PDO' not found in ...

 php.ini里面;extension=php_pdo.dll去掉前面的分号.

问题4:PDO中文乱码 

$dbh = "mysql:host=xxx.xxx.xxx.xxx;dbname=xxDB";
$db = new PDO($dbh, 'user', 'password');
$db->exec("SET CHARACTER SET UTF8"); 

问题5:mysql_pconnnect中文乱码

$gaSql['link'] = mysql_pconnect( $gaSql['server'], $gaSql['user'], $gaSql['password'] ) or die( 'Could not open connection to server' ); 
@mysql_query("SET character_set_connection=utf8, character_set_results=utf8, character_set_client=binary",$gaSql['link']);

问题6:PHP Error Class 'SoapClient' not found

1、安装soap模块 

2、windows下 php.ini  打开 extension=php_soap.dll ,linux 下打开extension=soap.so。

     重启php_cgi 

问题7:PHP Warning:  file_put_contents(/var/www/xxx) : failed to open stream: Permission denied in

文件夹权限问题,用   chmod -R 0777 /var/www 

四、初学遇到的问题

  【1】mysql_query();参数中字段名需要添加引号

    $sql = mysql_query("insert into tb_info(type,title,content,linkman,tel,edate) values
    ('$type','$title','$content','$linkman','$tel','$edate')");
    if ($sql){
        echo "<script>alert('恭喜您,信息发布成功!');window.location.href='release.php';</script>";
    }else{
        echo "<script>alert('对不起,信息发布失败!');history.back();</script>";
    }

  问题说明:关于这个问题,我都不是很明白。最开始,'$type','$title','$content','$linkman','$tel','$edate'都 没有加上引号。zend studio里面也没有提示语法错误,但是运行的时候,总是提示“对不起,信息发布失败!”在网上搜了半天没找到好的方法,还是同事提醒我,在变量前后加 上引号试试。果然加上引号之后,提示“恭喜您,信息发布成功!”呵呵,估计这个是规范写法吧。具体原因我就不清楚了。待研究。

  【2】关于单词拼写问题

  问题说明:这个问题说小不小,说大不大。糟糕的是,我总是很容易忽略。每次运行不成功的时候,我总是找不出拼错的单词,直到同事指出。但奇怪的是,在我写 js脚本或者CSS样式时,很快就能发现错误单词所在,但是一遇到PHP,我就晕菜了。不过,这也说明经验不足,还没有足够的感觉吧。继续努力吧!(不过 我真是数次为这个问题难为情啊,希望自己以后能更仔细!)

  【3】关于当前时间的存储问题

  【4】当mysql数据库的一个表中存在char和varchar两种字段类型且char的长度大于4时,表中的所有char都将自动转换成varchar

     【5】使用php的CURL函数curl_init初始化一个新的会话时出现以下错误

    Fatal error: Call to undefined function curl_init() in D:\apache2\htdocs\getinfo.php on line 8

   出现此错误的原因是因为服务器没有配置curl扩展。

   在PHP中配置并开启CURL的方法如下:

  • 1.在php安装目录下的ext目录里找到 php_curl.dll 文件。

  • 2.找到php目录下的 libeay32.dll和ssleay32.dll文件。

  • 3.把php_curl.dll、libeay32.dll、ssleay32.dll 、php5ts.dll复制到 %windir%/system32 (一般是C:\Windows\system32\)下

  • 4.打开php配置文件php.ini,找到extension=php_curl.dll把前面的分号去掉

  • 5.重新启动apache或IIS服务即可。

    启动成功后,可以运行phpinfo();函数查看相关php配置信息,找到以下信息,说明CURL配置成功。


© 著作权归作者所有

共有 人打赏支持
呢喃的猫咪

呢喃的猫咪

粉丝 133
博文 187
码字总数 300648
作品 0
杭州
程序员
私信 提问
PHP的if性能问题求教

【PHP】求教针对于单个HTML页面内多个IF if(i==1){ }else{ } 和 if(i==1): else: endif; 是否有性能差异?

许添翼
2015/07/03
220
4
Postman Fiddler使用手册

本文主要讲解没有什么主要的内容,主要是一些网上的Postman和fiddle教程,本人亲自测试和阅读过,以下是一些链接, Postman: 一,Postman软件安装 二,Postman使用手册1——导入导出和发送请...

slagga
2016/09/24
347
0
【PHP】别名函数之die()与exit()的真正区别

网上搜索die与exit两个函数的区别,大部分的”标准答案”都是说die是退出并释放内存,exit是退出但不释放内存。 这个解释显然是错的,PHP手册中已经说过“die — Equivalent to exit().This ...

issac宝华
2016/10/19
21
0
奇怪的请求【PHP】

突然发现有一个固定的ip的访问请求,是这样的。这个逗号是怎么来的。。。

__FresHmaN
2014/03/13
227
2
C#压缩文件遇到的问题

本人用C#参考网上的资料写了一段压缩文件的代码如下: public void zip(string DirectoryToZip, string ZipFileToCreate) { try { using (ZipFile zip = new ZipFile()) { zip.SaveProgress ......

嵇智
2012/12/27
108
0

没有更多内容

加载失败,请刷新页面

加载更多

初识flask

文档 0.10.1版本 http://www.pythondoc.com/flask/index.html 1.0.2版本 https://dormousehole.readthedocs.io/en/latest/ 安装flask $ pip3 install flaskCollecting flask Downloading......

yimingkeji
昨天
1
0
Akka系统《sixteen》译

Actor是一个封装状态(state)和行为(behavior)的对象,它们只通过交换消息通信(放入收件人邮箱的邮件)。从某种意义上说,Actor是最严格的面向对象编程形式,但它更适合将他们视为人:在与Act...

woshixin
昨天
1
0
技术工坊|如何开发一款以太坊钱包(深圳)

【好消息!】HiBlock区块链技术工坊已经成功举办了26期,其中北京1期,西安1期,成都2期,上海22期。经常有社区的小伙伴问定期举办技术工坊的除了上海以外,其他城市有没有?现在区块链技术工...

HiBlock
昨天
1
0
Redis 梳理笔记

安装 安装gccyum install gcc-c++下载传输到服务器上解压tar -xzvf *.tar.gzcd redis-3.2.9编译make安装 make PREFIX=/usr/local/redis install将配置文件拷贝出来cp redis...

晨猫
昨天
0
0
聊聊storm TridentWindowManager的pendingTriggers

序 本文主要研究一下storm TridentWindowManager的pendingTriggers TridentBoltExecutor.finishBatch storm-core-1.2.2-sources.jar!/org/apache/storm/trident/topology/TridentBoltExecut......

go4it
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部