分类目录归档:php+mysql

win2012 iis 安装多个php版本共存 不用网站使用不同php版本

在开发中, 有时候不同的网站需要使用不同的php版本,比较远久的网站程序因为当时开发时候用的是旧版本的php开发,所以如果在服务器上安装的是比较新的php版本的话,那很多时候都会出现一些错误。

而且现在php7已经不再向下兼容了,所以这时候服务器上如果安装多个php版本,并且不同网站使用兼容的php版本,那就可以解决这个问题了。那iis上改怎么让不同的网站使用不同的php版本呢?

首先下载不同的php版本,可以去php官网下载,

下载解压放到某个目录,比如:

E:\php7.0.3\

E:\php5.5.30\

E:\php5.2.6\

php.ini的配置这里就不说了,原来该怎么设置怎么设置。

然后开始在iis配置php

步骤

1.打开IIS 7。 IIS最上层>处理程序映射

麻瓜程序员 iis  安装多版本php

2.右边 添加模块映射

麻瓜程序员 iis 多版本php安装

3.在弹出的窗口中

路径写*.php 模块选FastCgiModule,可执行文件是php目录下的php-cgi.exe

名称随便填,为了好记可以填php版本名称,例如: php7.0.3、php5.2.6那样比较好区别 然后确定。

麻瓜程序员 iis 多版本php安装

再添加几次 把你需要的多个版本的php都添加进去。

添加完成之后点击需要选择不同php版本的网站,然后点击“查看经过排序的列表”。

麻瓜程序员 iis 多版本php安装

 

将你需要的php版本移到第一位

麻瓜程序员 iis 多版本php安装

这样网站就可以用选择的php版本来运行了。

网上还有一种方法是修改web.config文件,创建一个web.config文件之后,在里面添加以下内容。

<?xml version="1.0" encoding="UTF-8"?>

    <system.webServer>
        <handlers>
            <remove name="php5.5.30" />
            <remove name="php7.0.3" />
            <remove name="php5.2.6" />
            <add name="php5.2.6" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="E:\php7.0.3\php-cgi.exe" resourceType="Unspecified" requireAccess="Script" />
        </handlers>
    </system.webServer>
</configuration>

主要就是scriptProcessor(脚本处理器)路径不同,决定了调用了不同版本的php。

<remove name=”php5.5.30″ />也很重要,先把所有版本的php都移除一遍(这里的”name=” 就是之前填的名称)。再add name=,确保调到的是需要的版本。

注意:如果这边remove只有3个,而实际上你加了5个版本的php的话,为了确保调用到正确的版本,应该把另两个加进去。

然后就可以了。有新站的话就把这个web.config拷到站点的目录里,再修改下scriptProcessor的路径就可以了。

数据库做多表查询其实很简单!教你如何用sql做两表关联查询

例如:我有table1 和 table2 两张表table1: id name sex 1 老王 男 2 小红 女 3 小绿 男table2 结构如下
table1:
id name sex
1    老王   男
2   小红   女
3   小绿   男

table2:
id hobby Lid
1    谈心    2
2    工作   3
3    购物   2
4    聊天   1

现在我想查询 table1中 id=2 对应 table2中Lid=2的数据

select * from table1 a,table2 b where a.id=2 and a.id=b.Lid

这样就可以完美解决了!

文件已经另存为了utf-8码,但关闭后重新打开就自动变成了ansi编码的原因

一、问题

 文件已经另存为了utf-8码,但关闭后重新打开就自动变成了ansi编码?
二、原因
    原因是该文件中没有包含任何中文字符,如果该文件有包含中文字符,将文件另存为utf-8编码后,中文字符会以3个字节的宽度来保存(要看16进制代码),这样,在第二次打开文件时,编辑器会自动将文件识别为utf-8编码。

这里面还存在一个utf-8 bom头的问题,bom头是utf-8文件最开始的3个字节编码,其十六进制码为:EF BB BF,一般情况下编辑器通过判断文件中开头是否存在这三个字节编码,来识别此文件是UTF码或ansi码,但另外还存在一种情况是,utf-8编码文件中在保存时选择了“UTF-8 无BOM”格式(用Ultra Edit编辑器或Notepad++),也就是说移除了bom头三个字节,但文件中的中文是以三个字节的UTF-8编码保存的,一般的编辑器在打开文件时还是能将此文件识别为utf-8编码。但如果文件中既不含中文字符(三字节UTF-8格式编码的),也没有包含bom头标记的,用编辑器打开文件时就会识别为ansi码。

mysql让数据表里面的数据重新随机入库

下面是sql语句

第一步是先建立一个附表用来保存要打乱顺序的旧表的数据。
create table  新表  as select * from 旧表;

第二步是清空旧表的数据。
truncate table 旧表;

第三步是将附表的数据随机重新插入到旧表里面。
insert into 旧表 (title,content) select title,content from 新表 order by rand();

第四部删除附表。
DROP TABLE 新表;

下面是 两个数据库联合查询写入的例子,用了 right join(left join) on    来实现

insert into huoche._niaodao_yan2 (title,content) SELECT a.title,a.content FROM huoche2.`_niaodao_yan` as a right join huoche._niaodao_yan on (a.title=huoche._niaodao_yan.title) where a.title is not null

php mysql 获取数据库里面所有数据表的信息 表名 注释 条数等等

SHOW TABLE STATUS 直接写这个可以获取所在数据库下的所有数据表的信息

Name 表的名称
Engine 表的存储引擎。在MySQL 4.1.2之前,本值被标记为Type。
Version 表的.frm文件的版本号
Row_format 行存储格式(Fixed, Dynamic, Compressed, Redundant, Compact)。InnoDB表的格式被报告为Redundant或Compact
Rows 行的数目。部分存储引擎,如MyISAM,存储精确的数目。对于其它存储引擎,比如InnoDB,本值是一个大约的数,与实际值相差可达40到50%。在这些情况下,使用SELECT COUNT(*)来获得准确的数目。对于在INFORMATION_SCHEMA数据库中的表,Rows值为NULL。
Avg_row_length 平均的行长度。

 

Data_length 数据文件的长度。
Max_data_length 数据文件的最大长度。如果给定了数据指针的大小,这是可以被存储在表中的数据的字节总数。

 

Index_length 索引文件的长度。
Data_free 被整序,但是未使用的字节的数目。
Auto_increment 下一个AUTO_INCREMENT值。
Create_time 表创建时间。
Update_time 什么时候数据文件被最后一次更新
Check_time 什么时候表被最后一次检查。不是所有的存储引擎此时都更新,在此情况下,值为NULL。
Collation 表的字符集和整序。
Checksum 活性校验和值。
Create_options 和CREATE TABLE同时使用的额外选项。
Comment 创建表时使用的评注(或者有关为什么MySQL可以访问表信息的说明)。

如果是获取单个表的信息 就这样写就行了 SHOW TABLE STATUS FROM 库名 where name=表名

例子

$sql=mysql_query(‘SHOW TABLE STATUS’);
while($row=mysql_fetch_array($sql)){
echo”<tr><td>$row[0]</td><td>$row[4]</td><td>$row[17]</td><td><a href=’list.php?dbtable={$row[0]}’>去重</></td></tr>”;}

 

扩展

mysql show columns等show的用法

SHOW DATABASES︰列出 MySQL Server上的数据库。

SHOW TABLES [FROM db_name]︰列出数据库中的表。

SHOW TABLE STATUS [FROM db_name]︰列出数据库的表信息,比较详细。

SHOW COLUMNS FROM tbl_name [FROM db_name]︰列出表的列信息,同 SHOW FIELDS FROM tbl_name [FROM db_name],DESCRIBE tbl_name [col_name]。

SHOW FULL COLUMNS FROM tbl_name [FROM db_name]︰列出表的列信息,比较详细,同 SHOW FULL FIELDS FROM tbl_name [FROM db_name]。

SHOW INDEX FROM tbl_name [FROM db_name]︰列出表的索引信息。

SHOW STATUS︰列出 Server 的状态信息。

SHOW VARIABLES︰列出 MySQL 系統参数值

SHOW PROCESSLIST︰查看当前mysql查询进程

SHOW GRANTS FOR user︰列出用户的授权命令

PHP获取数据库表的注释

1、取得表注释
Select table_name 表名,TABLE_COMMENT 表注释 from INFORMATION_SCHEMA.TABLES Where table_schema = ‘testhuicard’ # #数据库名
AND table_name LIKE ‘companies’ # #表名
mysql手册:23.1. INFORMATION_SCHEMA表

2、取字段注释
Select COLUMN_NAME 列名, DATA_TYPE 字段类型, COLUMN_COMMENT 字段注释
from INFORMATION_SCHEMA.COLUMNS
Where table_name = ‘companies’ # #表名
AND table_schema = ‘testhuicard’ # #数据库名
AND column_name LIKE ‘c_name’ # #字段名

上面的两种方法用到的是 INFORMATION_SCHEMA.TABLES  和 INFORMATION_SCHEMA.COLUMNS 这两个库 这两个是在创建mysql时候就会存在的。

3、取得某数据库下所有表的注释
$tt = mysql_query(“show table status;”);
$table_info=array();
while($re = mysql_fetch_array($tt,MYSQL_ASSOC)){
//$re[“Comment”],这个就是表的注释
$table_info[] = $re;
} ……

php小记 简单的小偷程序

<form action=”kele.php” name=”tktk” method=”post”>
<input type=”text” value=”” name=”sea”/>
<input type=”submit” name=”submitkele” value=”Kele产品价格查询” >
</form>

<?php
if($_POST[‘submitkele’]){
$seac=$_POST[“sea”];
$url=”http://www.kele.com/templates/search.aspx?s=”.$seac;
$fg=@fopen($url,”r”) or die(“超时”);
$contss=file_get_contents($url);
eregi(“<table border=\”0\” cellspacing=\”0\” class=\”skuListTable\”>(.*)</table>”,$contss,$con);

$con[0]=str_replace(“src=\”/img/test.png”,”src=\”http://www.kele.com/img/test.png”,$con[0]);
$con[0]=str_replace(“href”,”name”,$con[0]);
print($con[0]);
if($con[0]==””){
echo”No part number results found.”;
}
}
?>