不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2019-07-03 11:41  分类:MySQL/NoSQL  编辑

问题描述:

MySQL 中带有反斜杠的内容入库后,发现反斜杠无故失踪了(俗话说被吃掉了)

例:插入

insert into tb('url') values ('absc\eeee');

结果数据库里的内容是:absceeee(反斜杠没了呢)

作者:php-note.com  发布于:2019-01-31 11:20  分类:PHP基础  编辑

将 空字符串 转为 数组时,有 业务bug,如

$str = "";
$arr = explode(",", $str);
print_r($arr);

输出:

Array
(
    [0] => 
)
作者:php-note.com  发布于:2018-11-04 15:18  分类:MySQL/NoSQL  编辑

关于 阿里云 RDS MySQL 排序分页查询数据错乱的原因和解决方案

1、某些时候MySQL 排序分页查询会出现数据错乱的情况 比如:

CREATE TABLE alarm_test (
  id bigint(20) NOT NULL DEFAULT '0',
  detail varchar(255) CHARACTER SET utf8 NOT NULL,
  created_on timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
作者:php-note.com  发布于:2018-04-01 12:23  分类:MySQL/NoSQL  编辑

字段太多,超过了 行记录的 总容量,报错:

The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs

解决方案:

把字段类型,修改为 text

作者:php-note.com  发布于:2017-12-17 18:22  分类:PHP库/系统/微信  编辑

遇到的问题:

我们还是先来看手册是怎么说的:  

It is important to remember that any string participating in an Excel formula is allowed to be maximum 255 characters (not bytes).

当下拉列表的数据来源过长(more than 255 characters)时,该下拉列表会显示不正确(我遇到的情况是:该下拉列表显示了别的正常的下拉列表的数据来源)。

作者:php-note.com  发布于:2017-10-26 22:33  分类:PHP库/系统/微信  编辑

解决方法:

在php程序代码里面设置报警级别

<?php
error_reporting(E_ALL ^ E_DEPRECATED);

Deprecated 的问题就这样解决掉了,不过还是建议大家尽快取消 mysql 的用户,全部都走向 mysqli 或者 mysqlnd 等等。mysql 确实是太不安全而且太老旧了。

作者:php-note.com  发布于:2017-09-02 21:09  分类:PHP库/系统/微信  编辑
作者:php-note.com  发布于:2017-02-08 09:47  分类:PHP库/系统/微信  编辑
作者:php-note.com  发布于:2017-01-01 08:59  分类:MySQL/NoSQL  编辑

今天碰到数据库出错:

Got error 28 from storage engine

查了一下,数据库文件所在的盘应该没事,应该是数据库用的临时目录空间不够

作者:php-note.com  发布于:2016-12-04 19:30  分类:PHP基础  编辑

作者:php-note.com  发布于:2016-11-15 13:03  分类:PHP基础  编辑

PHP 数字超过一定长度时,会自动转换为 科学计数法 的形式,如 1.2345678912346E+16
如何 避免转换,让它原样展示呢?

作者:php-note.com  发布于:2016-09-13 09:57  分类:PHP基础  编辑

今天用rtrim()函数时遇到了一个奇怪的问题:

echo rtrim('

</div>', '</div>'); // 输出为 <p echo ltrim('www.cnblogs.com','www.'); // 输出为 cnblogs.com

以上的输出结果有点出人意料,本来我想第一行应该输出

,第二行会输出cnblogs.com。

作者:php-note.com  发布于:2016-02-18 23:11  分类:PHP库/系统/微信  编辑

大部分PHP框架中,为了防止一个类被重复实例化,往往采用“单例模式”实例化类。我们的项目框架是这样做的:

先写好一个基类 /framework/Base.class.php,内容如下:

<?php
namespace framework;

defined('SITE_PATH') or die('Access Denied');

/**
 * 业务基类
 *
 * @package framework
 */
class Base {
	/**
	 * 类实例化(单例模式)
	 *
	 * @return mixed
	 * @throws Exception
	 */
	public static function instance() {
		static $_instance = array();

		$classFullName = get_called_class();
		if (!isset($_instance[$classFullName])) {
			core_load_class($classFullName);
			if (!class_exists($classFullName, false)) {
				throw new Exception('"' . $classFullName . '" was not found !');
			}
			$_instance[$classFullName] = new $classFullName();
		}

		return $_instance[$classFullName];
	}
}
?>
作者:php-note.com  发布于:2015-07-06 12:36  分类:PHP基础  编辑
if (!empty (get_gpc('userId'))) {
	$userId = get_gpc('userId');
} else {
	$error = "ID doesn't exist";
}

报错:

Fatal error: Can't use method return value in write context in (line number)

作者:php-note.com  发布于:2014-10-22 15:35  分类:PHP库/系统/微信  编辑

本来想简化 ThinkSNS 系统里面的一个缓存管理函数S(),

结果呢,留下了一个大bug,想通过 S('键名', null); 来删除某个缓存,死活不成功!

通过跟踪,原来 当 $value = null 时,if ($value == '') 匹配成功,即 null == '',所以需要把“等号”改为“恒等号”。即,把 if ($value == '') 改为 if ($value === ''),问题解决。

作者:php-note.com  发布于:2014-05-20 22:47  分类:PHP基础  编辑

PHP的垃圾回收机制

PHP5.3之前使用的垃圾回收机制是单纯的“引用计数”,也就是每个内存对象都分配一个计数器,当内存对象被变量引用时,计数器+1;当变量引用撤掉后,计数器-1;当计数器=0时,表明内存对象没有被使用,该内存对象则进行销毁,垃圾回收完成。

“引用计数”存在问题,就是当两个或多个对象互相引用形成环状后,内存对象的计数器则不会消减为0;这时候,这一组内存对象已经没用了,但是不能回收,从而导致内存泄露。

PHP5.3开始,使用了新的垃圾回收机制,在引用计数基础上,实现了一种复杂的算法,来检测内存对象中引用环的存在,以避免内存泄露。

作者:php-note.com  发布于:2014-03-13 16:51  分类:PHP基础  编辑

需要注意的是如果采用GET方式,那么action url中参数都会被丢弃,提交时候只会把form中的数据拼接在url向服务器提交;但是POST的方式则不会这样,它会按照action指定的url进行提交数据,包含url后面跟着的参数和参数值。

作者:php-note.com  发布于:2013-11-07 14:05  分类:MySQL/NoSQL  编辑

1、如果都是MyISAM引擎,直接拷贝原有数据库文件"*.frm"、"*.MYD"、"*.MYI"即可,如果原数据库引擎是InnoDB,切记还需拷贝ibdata1文件;

2、备份数据库的时候,最好是用相关的工具进行备份或是导出sql文件,以免浪费时间在数据库恢复上。

作者:php-note.com  发布于:2013-10-20 00:43  分类:MySQL/NoSQL  编辑

事故描述

在一次项目中,上线了一新功能之后,陆陆续续的有客服向我们反应,有用户的个别道具数量高达42亿,但是当时一直没有到证据表示这是,确实存在,并且直觉告诉我们,这是不可能的,就一直没有在意,直到后来真的发现了一个用户确实是42亿,当时我们整个公司都震惊了,如果有大量用户是这样的情况,公司要亏损几十万,我们的老大告诉我们,肯定是什么地方数据溢出的,最后我们一帮人,疯了似的查代码,发现……

作者:php-note.com  发布于:2013-05-14 17:29  分类:PHP基础  编辑

【案例一】

作者:老王

如果PHP对象存在递归引用,就会出现内存泄漏。这个Bug在PHP里已经存在很久很久了,先让我们来重现这个Bug,代码如下: