windows如何重启mysql

开始->运行->cmd

停止:net stop mysql

启动:net start mysql

前提MYSQL已经安装为windows服务

发表在 mysql | 标签为 | 留下评论

对MySQL全文索引的最小值的解决

以下的文章主要介绍的是MySQL全文索引的最小值的正确解决方案,对于MySQL全文索引的最小值的实际解决方案中你是否有这样的疑问?为什么一定要用全文索引呢?以下的文章就会给你解答。 一般的数据库搜索都是用的SQL的 like 语句,like 语句是不能利用索引的,每次查询都是从第一条遍历至最后一条,查询效率极其低下。一般数据超过10万或者在线人数过多,like查询都会导致数据库崩溃。这也就是为什么很多程序都只提供标题搜索的原因了,因为如果搜索内容,那就更慢了,几万数据就跑不动了。 MySQL 全文索引是专门为了解决模糊查询提供的,可以对整篇文章预先按照词进行索引,搜索效率高,能够支持百万级的数据检索。 如果您使用的是自己的服务器,请马上进行设置,不要浪费了这个功能。 如果您使用的是虚拟主机,请马上联系空间商修改配置。首先,MySQL 的这个默认值对于中文来说就是一个错误的设置,修改设置等于纠正了错误。其次,这个配置修改很简单,也就是几分钟的事情,而且搜索效率提高也降低了空间商数据库宕掉的几率。如果你把本篇文章发给空间商,我相信绝大部分都会愿意改的。 设置方法: 修改 my.ini (Linux 下是 my.cnf ) ,在 [MySQLd] 后面加入一行“ft_min_word_len=1”,然后重启MySQL,在执行repair table table_name quick即可重建索引 以上的相关内容就是对MySQL全文索引最小值解决方法的介绍,望你能有所收获。

发表在 mysql | 标签为 | 留下评论

Discuz7.1帖内右侧广告位实现环绕方法

Discuz7.1帖内右侧广告位实现环绕方法
打开 viewthread_node.htm 查找:

<!–{if $admode && !empty($advlist[‘thread3’][$post[‘count’]])}–><div id=”ad_thread3_$post[count]”>$advlist[thread3][$post[count]]</div><!–{else}–><div id=”ad_thread3_$post[count]”></div><!–{/if}–><div id=”ad_thread4_$post[count]”></div>

删除这段代码,再搜索:

<td id=”postmessage_$post[pid]”>$post[message]</td>

替换成:

<td id=”postmessage_$post[pid]”><!–{if $admode && !empty($advlist[‘thread3’][$post[‘count’]])}–><div id=”ad_thread3_$post[count]”>$advlist[thread3][$post[count]]</div><!–{else}–><div id=”ad_thread3_$post[count]”></div><!–{/if}–><div id=”ad_thread4_$post[count]”></div>$post[message]</td>

保存,后台更新下缓存即可。

发表在 php | 标签为 | 留下评论

PHP中this,self,parent的区别

{一}PHP中this,self,parent的区别之一this篇

       面向对象编程(OOP,Object Oriented Programming)现已经成为编程人员的一项基本技能。利用OOP的思想进行PHP的高级编程,对于提高PHP编程能力和规划web开发构架都是很有意义的。

PHP5经过重写后,对OOP的支持额有了很大的飞跃,成为了具备了大部分面向对象语言的特性的语言,比PHP4有了很多的面向对象的特性。这里我主要谈的是 this,self,parent 三个关键字之间的区别。从字面上来理解,分别是指 这、自己、父亲。先初步解释一下,this是指向当前对象的指针(可以看成C里面的指针),self是指向当前类的指针parent是指向父类的指针。我们这里频繁使用指针来描述,是因为没有更好的语言来表达。关于指针的概念,大家可以去参考百科。

下面我们就根据实际的例子结合来讲讲。

<?php

  class name          //建立了一个名为name的类
 {
     private $name;          //定义属性,私有

     //定义构造函数,用于初始化赋值
     function __construct( $name )
     {
          $this->name = $name;          //这里已经使用了this指针语句①
     }

     //析构函数
     function __destruct(){}

     //打印用户名成员函数
     function printname()
     {
          print( $this->name );              //再次使用了this指针语句②,也可以使用echo输出
     }
 }

 $obj1 = new name( “PBPHome” );   //实例化对象  语句③

 //执行打印
 $obj1->printname(); //输出: PBPHome
 echo “<br>”;                                     //输出:回车

 //第二次实例化对象
 $obj2 = new name( “PHP” );

 //执行打印
 $obj2->printname();                         //输出:PHP
 ?>
 

说明:上面的类分别在 语句①语句②使用了this指针,那么当时this是指向谁呢?其实this是在实例化的时候来确定指向谁,比如第一次实例化对象的时候(语句③),那么当时this就是指向$obj1对象,那么执行语句②的打印时就把 print( $this-><name ) 变成了 print( $obj1t->name ),那么当然就输出了”PBPHome”。第二个实例的时候,print( $this->name )变成了print( $obj2->name ),于是就输出了”PHP”。所以说,this就是指向当前对象实例的指针,不指向任何其他对象或类。
 

{二}。PHP中this,self,parent的区别之二self篇

此篇我们就self的用法进行讲解

首先我们要明确一点,self是指向类本身,也就是self是不指向任何已经实例化的对象,一般self使用来指向类中的静态变量。假如我们使用类里面静态(一般用关键字static)的成员,我们也必须使用self来调用。还要注意使用self来调用静态变量必须使用 :: (域运算符号),见实例。

  <?php

     class counter     //定义一个counter的类
     {
         //定义属性,包括一个静态变量$firstCount,并赋初值0 语句①  
         private static $firstCount = 0;
         private $lastCount;

         //构造函数
         function __construct()
         {
              $this->lastCount = ++self::$firstCount;      //使用self来调用静态变量 语句②
         }

         //打印lastCount数值
         function printLastCount()
         {
              print( $this->lastCount );
         }
     }

  //实例化对象
  $obj = new Counter();

  $obj->printLastCount();                             //执行到这里的时候,程序输出 1

 ?>

这里要注意两个地方语句①和语句②。我们在语句①定义了一个静态变量$firstCount,那么在语句②的时候使用了self调用这个值,那么这时候我们调用的就是类自己定义的静态变量$frestCount。我们的静态变量与下面对象的实例无关,它只是跟类有关,那么我调用类本身的的,那么我们就无法使用this来引用,因为self是指向类本身,与任何对象实例无关。然后前面使用的this调用的是实例化的对象$obj,大家不要混淆了。

关于self就说到这里,结合例子还是比较方便理解的。第二篇结束。

{三}PHP中this,self,parent的区别之三parent篇

此篇我们就parent的用法进行讲解。

首先,我们明确,parent是指向父类的指针,一般我们使用parent来调用父类的构造函数。实例如下:

<?php
 //建立基类Animal
 class Animal
 {
     public $name; //基类的属性,名字$name

     //基类的构造函数,初始化赋值
     public function __construct( $name )
     {
          $this->name = $name;
     }
 }

 //定义派生类Person  继承自Animal类
 class Person extends Animal
 {
     public $personSex;        //对于派生类,新定义了属性$personSex性别、$personAge年龄
     public $personAge;

     //派生类的构造函数
     function __construct( $personSex, $personAge )
     {
          parent::__construct( “PBPHome” );     //使用parent调用了父类的构造函数 语句①
          $this->personSex = $personSex;
          $this->personAge = $personAge;
     }

     //派生类的成员函数,用于打印,格式:名字 is name,age is 年龄
     function printPerson()
     {
          print( $this->name. ” is ” .$this->personSex. “,age is ” .$this->personAge );
      }
 }

 //实例化Person对象
 $personObject = new Person( “male”, “21”);

 //执行打印
 $personObject->printPerson(); //输出结果:PBPHome is male,age is 21

 ?>

里面同样含有this的用法,大家自己分析。我们注意这么个细节:成员属性都是public(公有属性和方法,类内部和外部的代码均可访问)的,特别是父类的,这是为了供继承类通过this来访问。关键点在语句①: parent::__construct( “heiyeluren” ),这时候我们就使用parent来调用父类的构造函数进行对父类的初始化,这样,继承类的对象就都给赋值了name为PBPHome。我们可以测试下,再实例化一个对象$personObject1,执行打印后name仍然是PBPHome。

总结:this是指向对象实例的一个指针,在实例化的时候来确定指向;self是对类本身的一个引用,一般用来指向类中的静态变量;parent是对父类的引用,一般使用parent来调用父类的构造函数。

发表在 php | 标签为 | 留下评论

Maximum execution time of 30 seconds exceeded in

drupal的模块状态多会导致启用模块时候出现一个类似错误 Fatal error: Maximum execution time of 30 seconds exceeded in D:\wamp\www\drupal\includes\common.inc on line 501 是因为程序执行时间超过了最大允许执行时间 解决办法: 修改php.ini: max_execution_time = 300 ,秒可以设置更大,这里是300秒,然后重起服务 如果修改php.ini的办法还是不行,就试试这样,找到你的Drupal站点的settings.php,在里面的ini_set部分底下新加一行 ini_set(‘max_execution_time’, 100); 使Drupal自己去设置最大执行时间,也就是调用了set_time_limit(100) ,0为无限制 然后试试看,基本就可以解决问题了 如果还不可以的话说明你之前安装的模块过多或者你的一个模块关联的模块过多,可以再加上几十秒到上百秒不等,反正安装模块的时候不是很多,多等一会无所谓。 但是看过台湾阿舍得经验谈后,建议还是在你安装成功模块后,还是注掉ini_set(‘max_execution_time’, 时间);这行,比较安全 网上还有个解决办法是修改数据库文件,大至如下,也可以尝试一下: 找到mysql的根目录下的my.ini(my.cnf)文件,打开后找到最后一行 [mysqld] port=3306 下面加上: set-variable = max_allowed_packet=设置大一些比如 10M

发表在 mysql, 服务器 | 留下评论

Adobe Bridge批量重命名的技巧

随着图像收藏量的增加,用可以缩短图像查找时间的文件命名策略可以大大节省时间。第一步是创建一个在大量图像收藏中都会有用的命名策略,然后用Bridge的“批重命名”功能自动命名文件。使用Bridge的另一个优点是有助于进行自动备份,方法是在一个单独的文件夹中创建重命名文件的备份副本。

  在Adobe Bridge中打开其中包含重命名图像的文件夹。然后选中要重命名的图像。如果文件夹中包含不同主题、地点或事由的图像,只选择同一组相似的图像进行重命名。可能想在重命名之前或重命名过程中创建一个子文件夹并根据主题、地点和事由对图像进行分组。

  提示 为了快速浏览复杂的文件目录,可选择“窗口”➤“工作区”,然后选择“文件导航器”。要获得额外的空间来查看文件结构,可拖动Bridge中文件夹和内容窗格之间的垂直分界栏,让文件夹面板变大。

  注意 尽管也可以用Photoshop早期版本中的批量对话框来重命名文件,但是它们需要在文件上运行一个动作并保存。在Bridge中,无需运行动作或保存RAW文件即可对文件进行重命名。图像的备份,就可选择将图像复制或移动到其他文件夹。选项如下:

选择“工具”➤批重命名”。Bridge显示“批重命名”对话框。在“目标文件夹”部分中有3个选项可供选择。选择什么文件夹取决于已经建立的工作流程和备份过程。例如,如果工作流程的第一步是用命名系统建立一个RAW

  • “在同一文件夹中重命名”,如果没有备份图像,仅是想重命名文件,那么就选择这个选项;

   “移动到其他文件夹”,选中此项时,Bridge会显示“浏览”按钮,可以选择文件夹或新建文件夹;

   “复制到其他文件夹”,如果想备份原始文件,该选项可在一个步骤中同时完成备份和重命名。

在“新文件名”部分,Bridge
以下拉菜单的形式给出了一系列选项。在此可实现通用的文件命名策略,该策略可应用到当前的、现有的和将来的图像中。

  在第一个下拉菜单中可以选择“文本”、“新扩展名”、“当前文件名”、“保留的文件名”、“序列数字”、“序列字母”、“日期”或者“EXIF元数据”。如果想在文件名中包含日期和时间,在第一个选项框中选择“日期”。在第二个选项框中选择除“昨天”之外的任一选项,然后在第三个选项框中选择“MMDDYYYY”(月、日、年)。Bridge会将选择的选项插入文件名。

选择所需的选项,然后点击右边的加号来添加更多的文件名字段。
  根据在第一行第一个选项框中选择的内容,Bridge会显示其他的选项框。试着选择不同的选项,直到获得了实现喜欢的文件命名策略的字段集为止。在“批重命名”对话框的底部,Bridge预览构建文件的文件名示例。

  提示 如果选择了含有序列数字的选项,Bridge会自动为重命名的每个文件名递增该数字。

选择“在XMP元数据中保留当前文件名”选项可保留现有文件名。如果没有在Camera Raw中编辑这些文件,那么选中该选项可保留原始文件名。如果已经在Camera Raw中编辑了这些文件,那么文件名已经嵌入到Camera Raw设置中了。但是,因为从XMP附属文件中恢复原始文件名是非常困难的,所以保留原始文件名是个好想法。如果想撤销重命名,可以选择“批重命名”命令,然后选择“保留文件名”,从而返回到原始文件名。但是大多数摄影师会在工作流程的第一步就进行重命名并对原始文件进行备份。

  在这种情况下,打开“在XMP元数据中保留当前文件名”选项是最好的做法。

选择图像要与之兼容的操作系统。默认选择当前的操作系统,并且不能取消选中它。

  点击“重命名”按钮。Bridge显示一个消息,声明要将更新的元数据写入到“.XMP”附属文件,而不是原来的RAW文件。如果以后将该文件复制到另一台电脑或磁盘中,一定要将XMP文件随同图像文件一并复制过去。

  点击“批重命名”对话框中的“确定”按钮。Bridge应用修改过的文件名。

  相机为每个图像都命名了惟一的名称和编号。通常相机会用日期作为起点,然后为每幅图像添加一个编号。但是使用某些相机时,可以选择连续命名文件或每次新任务时都重新编号。在后一种情况下,最终可能会有重复的文件名。要避免文件重名,使用相机的连续命名选项。这个系统有一个额外的优点,能追踪相机的作用次数,或总的拍摄数目。另外,如果想知道每次拍摄的照片数量,使用连续编号功能和一些简单的计算即可随时了解相机的作用次数。

  在电脑上获取文件后,一定要使用在图像的拍摄、存档、处理、打印和发布系统中通用的一致命名约定。可以简单地设置为月份、年份、拍摄地点和原始文件名。在这个例子中,200512月拍摄于印度的图像名称首先是“1205India”,后面加上相机自动生成的图像编号。最终的文件名类似于112005India3723.ORF。要查看文件,选择“视图”➤排序”,然后根据日期和所需的顺序来排序文件。

发表在 photoshop | Adobe Bridge批量重命名的技巧已关闭评论

沾益龙华中学2010年5月21日上线测试(www.zylhzx.com)

沾益龙华中学2010年5月21日上线测试(www.zylhzx.com)
网址 http://www.zylhzx.com

发表在 服务器 | 留下评论

关于“Maximum execution time of 30 seconds exceeded”错误解决办法

30秒运行超时的错误(Maximum execution time of 30 seconds exceeded)

解决办法:

方法一,修改php.ini文件
max_execution_time = 30; Maximum execution time of each script, in seconds
把它设置成需要的值就可以了。如果设置成0的话,就是永不过期。

方法二,修改php执行文件
加上

max_execution_time = 30; Maximum execution time of each script, in seconds
把它设置成需要的值就可以了。如果设置成0的话,就是永不过期。

发表在 php | 留下评论

20100501-商城新版首页

发表在 服务器 | 留下评论

QQ2009聊天记录导入

大家都知道QQ2008聊天记录数据库文件名为MsgEx.db,想转移以前的聊天记录只需备份对应Q号文件夹下的这个文件即可。但QQ2009中的聊天记录数据库文件名却不是MsgEx.db了,更名为Msg2.0.db,地址也发生变化,相对地址为:安装区TencentQQ2009Users你的用户名。

如果将QQ2008的MsgEx.db复制到QQ2009下并更名为Msg2.0.db也不能使用,还好QQ2009自带了数据导入工具,可以将旧版本的聊天记录导到新版本中,具体操作方法如下:

第1步 打开主菜单栏,选择”工具→数据导入工具”,打开“数据导入工具”。

第2步 选择要导入的内容,勾选”消息记录”,单击“下一步”按钮。

第3步 选择导入消息的方式,选择”自动搜索导入”,这样QQ的导入工具会自动搜索相关文档导入,同样你也可以选择下面两个,结果都是相同的。

第4步 点击导入按钮开始导入:

发表在 服务器 | 标签为 | 留下评论