Mongo查询语句方法与sql 对比

2013 年 11 月 18 日 at 下午 8:13分类:Mysql

有好多人是过sql之后 再用mongo 很不习惯它的查询方式,下面是查询语句与sql的对比。

SQL Statement Mongo Query Language Statement
CREATE TABLE USERS (a Number, b Number) Implicit or use MongoDB::createCollection().
INSERT INTO USERS VALUES(1,1) $db->users->insert(array(“a” => 1, “b” => 1));
SELECT a,b FROM users $db->users->find(array(), array(“a” => 1, “b” => 1));
SELECT * FROM users WHERE age=33 $db->users->find(array(“age” => 33));
SELECT a,b FROM users WHERE age=33 $db->users->find(array(“age” => 33), array(“a” => 1, “b” => 1));
SELECT a,b FROM users WHERE age=33 ORDER BY name $db->users->find(array(“age” => 33), array(“a” => 1, “b” => 1))->sort(array(“name” => 1));
SELECT * FROM users WHERE age>33 $db->users->find(array(“age” => array(‘$gt’ => 33)));
SELECT * FROM users WHERE age<33 $db->users->find(array(“age” => array(‘$lt’ => 33)));
SELECT * FROM users WHERE name LIKE “%Joe%” $db->users->find(array(“name” => new MongoRegex(“/Joe/”)));
SELECT * FROM users WHERE name LIKE “Joe%” $db->users->find(array(“name” => new MongoRegex(“/^Joe/”)));
SELECT * FROM users WHERE age>33 AND age<=40 $db->users->find(array(“age” => array(‘$gt’ => 33, ‘$lte’ => 40)));
SELECT * FROM users ORDER BY name DESC $db->users->find()->sort(array(“name” => -1));
CREATE INDEX myindexname ON users(name) $db->users->ensureIndex(array(“name” => 1));
CREATE INDEX myindexname ON users(name,ts DESC) $db->users->ensureIndex(array(“name” => 1, “ts” => -1));
SELECT * FROM users WHERE a=1 and b=’q’ $db->users->find(array(“a” => 1, “b” => “q”));
SELECT * FROM users LIMIT 20, 10 $db->users->find()->limit(10)->skip(20);
SELECT * FROM users WHERE a=1 or b=2 $db->users->find(array(‘$or’ => array(array(“a” => 1), array(“b” => 2))));
SELECT * FROM users LIMIT 1 $db->users->find()->limit(1);
EXPLAIN SELECT * FROM users WHERE z=3 $db->users->find(array(“z” => 3))->explain()
SELECT DISTINCT last_name FROM users $db->command(array(“distinct” => “users”, “key” => “last_name”));
SELECT COUNT(*y) FROM users $db->users->count();
SELECT COUNT(*y) FROM users where AGE > 30 $db->users->find(array(“age” => array(‘$gt’ => 30)))->count();
SELECT COUNT(AGE) from users $db->users->find(array(“age” => array(‘$exists’ => true)))->count();
UPDATE users SET a=1 WHERE b=’q’ $db->users->update(array(“b” => “q”), array(‘$set’ => array(“a” => 1)));
UPDATE users SET a=a+2 WHERE b=’q’ $db->users->update(array(“b” => “q”), array(‘$inc’ => array(“a” => 2)));
DELETE FROM users WHERE z=”abc” $db->users->remove(array(“z” => “abc”));

php运算

2013 年 8 月 31 日 at 下午 10:56分类:PHP

第一段程序:

1
2
3
4
$a=1;
$b=&$a;
$c =(++$a)+($a++);
echo $c; // $c=5;

第二段程序:

1
2
3
$a=1;
$c=(++$a)+($a++);
echo $c; //$c=4;

两端程序的输出结果有所不同 第一为5;第二个为4;
解析第一段程序的执行顺序
++$a;$a等于2; 同时被$b引用;此时b等于2;
$a++时;$a等于2;被$b引用过后变成了3;此时$b等于3;
(详见php手册递增运算符的解释)

第二段程序也就是没有被引用过所以$a++的表达式 还是为2;故第二段程序输出为4;
以上内容如有不对 请留言说明 谢谢。

nginx服务器host文件路径

2013 年 8 月 26 日 at 下午 5:08分类:Linux

/usr/local/nginx/conf/vhosts

做个记录。

a标签实现表单提交按钮

2013 年 7 月 19 日 at 上午 11:11分类:Other

用a标签实现表单提交按钮的方法有两种

具体例子如下:

1.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<html>
<head>
</head>
 
<body>
 
<form id="myForm" action="index.php" method="get">
id: <input type="text" name="id" size="20"><br />
tid: <input type="text" name="tid" size="20"><br />
<a href="#" onclick="document.getElementById('myForm').submit();">
</form>
</body>
 
</html>

2.

1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<head>
</head>
 
<body>
<form name="myForm" action="index.php" method="get">
id: <input type="text" name="id" size="20"><br />
tid: <input type="text" name="tid" size="20"><br />
<a href="#" onclick="document.myForm.submit();"></a>
</form>
</body>
 
</html>

这两个方法都可以用 ,根据自己的实际情况选择。其他的标签也可以 。只要支持js事件。

notepad++ 运行php文件两种设置方法 (不用浏览器)Execute插件使用

2013 年 7 月 18 日 at 下午 6:57分类:Other

notepad++文本编辑器个人感觉很好用 。而且支持的语言也很多。当运行一个很小的脚本编辑器的时候,
有时候就不喜欢打开浏览器查看结果,不仅占内存而且还慢。下面我就介绍两种方法来实现不用开浏览器
就能运行php代码,得到结果。
第一种:
1、点击notepad++ “运行(R)->运行”[或者直接F5];
2、在里面输入cmd /k D:\wamp\php\php.exe “$(FULL_CURRENT_PATH)” &PAUSE & EXIT
3.点击保存 设置个名称,例如:php 在设置一下快捷键 notpad的快捷键很多 多看看是否重复了。
4. 写一段php代码 运行一下看看效果把。
第二种:
1.点击notepad++ 插件(P)->Plugin Manager -> Show Plugin Manager;
2.找到 NppExec 插件下载 安装;
3.安装成功后,它的目录在 插件(P)->NppExec ;
4.插件(P)->NppExec->Execute… (或者直接F6运行);
5.在里面输入D:\wamp\php\php.exe “$(FULL_CURRENT_PATH)” 保存。每次运行的时候都要点击一下”ok”,
在编辑器底部就会出现结果。
ps:D:\wamp\php\php.exe 这个是我本地环境的路径,替换成你自己的服务器路径。
(如有什么疑问请留言。)

php获取中文字符串首字母函数

2013 年 7 月 16 日 at 下午 6:31分类:PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
function chineseFirst($str)
{
 
	$str= iconv("UTF-8","gb2312", $str);	//如果程序是gbk的,此行就要注释掉
 
	//判断字符串是否全都是中文
	if (preg_match("/^[\x7f-\xff]/", $str))
	{
		$fchar=ord($str{0});   
        if($fchar>=ord("A") and $fchar<=ord("z") )return strtoupper($str{0});
        $a = $str; 
        $val=ord($a{0})*256+ord($a{1})-65536;
        if($val>=-20319 and $val<=-20284)return "A";   
        if($val>=-20283 and $val<=-19776)return "B";   
        if($val>=-19775 and $val<=-19219)return "C";   
        if($val>=-19218 and $val<=-18711)return "D";   
        if($val>=-18710 and $val<=-18527)return "E";   
        if($val>=-18526 and $val<=-18240)return "F";   
        if($val>=-18239 and $val<=-17923)return "G";   
        if($val>=-17922 and $val<=-17418)return "H";
        if($val>=-17417 and $val<=-16475)return "J";                 
        if($val>=-16474 and $val<=-16213)return "K";                 
        if($val>=-16212 and $val<=-15641)return "L";                 
        if($val>=-15640 and $val<=-15166)return "M";                 
        if($val>=-15165 and $val<=-14923)return "N";                 
        if($val>=-14922 and $val<=-14915)return "O";                 
        if($val>=-14914 and $val<=-14631)return "P";                 
        if($val>=-14630 and $val<=-14150)return "Q";                 
        if($val>=-14149 and $val<=-14091)return "R";                 
        if($val>=-14090 and $val<=-13319)return "S";                 
        if($val>=-13318 and $val<=-12839)return "T";                 
        if($val>=-12838 and $val<=-12557)return "W";                 
        if($val>=-12556 and $val<=-11848)return "X";                 
        if($val>=-11847 and $val<=-11056)return "Y";                 
        if($val>=-11055 and $val<=-10247)return "Z";
	} else
	{
		return false;
	}
 
}

php 连接 sqlserver2005教程(sqlsrv扩展)

2013 年 4 月 22 日 at 下午 4:10分类:PHP

本人环境Apache:2.2.21 php:5.3.10 操作系统windows xp service pack 3

使用的是Microsoft Drivers for PHP for SQL Server的扩展包做连接。

1.下载Microsoft Drivers for PHP for SQL Server 扩展包  它分为2.0和3.0版

本。(本人使用的是2.0版本)

这个扩展包对电脑的操作系统有要求,对应的系统使用对应的版本。

3.0  所支持的操作系统
Windows Server 2008 R2 SP1
Windows Vista SP2
Windows Server 2008 SP2
Windows 7 SP1

2.0 所支持的操作系统
Windows Server 2003 Service Pack 1
Windows XP Service Pack 3
Windows Vista Service Pack 1 or later
Windows Server 2008
Windows Server 2008 R2
Windows 7

所以本次实例使用的是 2.0  里面php_sqlsrv_53_ts_vc9.dll 扩展 ;

2.将php_sqlsrv_53_ts_vc9.dll文件复制到php的扩展文件夹 (一般的都在

php/ext文件夹下面);
3.将此php_sqlsrv_53_ts_vc9.dll文件拷贝到系统所在盘的system32中;
4.打开php.ini文件,在extension=php_mysql.dll 下面一行添加

extension=php_sqlsrv_53_ts_vc9.dll  之后重启apache。
5.测试代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$serverName = "127.0.0.1";
$uid = "sa";
$pwd = "000";
$db  = "php555";
 
$connectionInfo = array(
"UID"=$uid,"PWD"=$pwd,"Database"=$db
);
 
$conn = sqlsrv_connect( $serverName, $connectionInfo);
 
if( $conn === false )
{
echo "Unable to connect.";
die(var_dump( sqlsrv_errors(), true));
}else{
echo "sqlserver连接成功!!!";
}

6.运行上边代码会提示您以下内容
Unable to connect.
array(2) { [0]=> array(6) { [0]=> string(5) “IMSSP” ["SQLSTATE"]=>

string(5) “IMSSP” [1]=> int(-49) ["code"]=> int(-49) [2]=> string(390)

“This extension requires either the Microsoft SQL Server 2008 Native

Client (SP1 or later) or the Microsoft SQL Server 2008 R2 Native Client

ODBC Driver to communicate with SQL Server. Neither of those ODBC

Drivers are currently installed. Access the following URL to download

the Microsoft SQL Server 2008 R2 Native Client ODBC driver for x86:

http://go.microsoft.com/fwlink/?LinkId=163712″ ["message"]=> string

(390) “This extension requires either the Microsoft SQL Server 2008

Native Client (SP1 or later) or the Microsoft SQL Server 2008 R2 Native

Client ODBC Driver to communicate with SQL Server. Neither of those

ODBC Drivers are currently installed. Access the following URL to

download the Microsoft SQL Server 2008 R2 Native Client ODBC driver for

x86: http://go.microsoft.com/fwlink/?LinkId=163712″ } [1]=> array(6) {

[0]=> string(5) “IM002″ ["SQLSTATE"]=> string(5) “IM002″ [1]=> int(0)

["code"]=> int(0) [2]=> string(71) “[Microsoft][ODBC 驱动程序管理器] 未

发现数据源名称并且未指定默认驱动程序” ["message"]=> string(71)

“[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程

序” } } bool(true)

7.点击http://go.microsoft.com/fwlink/?LinkId=163712 这个链接 进入下载驱

动程序包就可以了,X86 Package(sqlncli.msi) 。安装的时候有可能某些软件会影响到安装,导致安装失败,

建议您关掉没用的程序。

8.之后再运行第5步代码; 提示:”sqlserver连接成功!!!” 。
9.具体的sqlsrv的函数就不做介绍了 在扩展包里面有手册,手册里面有详细介绍。

(转载请注明出处,谢谢)

mysql between and的用法和注意事项

2012 年 12 月 4 日 at 下午 2:45分类:Mysql

SELECT * FROM TABLE WHERE id BETWEEN 1 AND 10;

这句话就是查询出 table表 中id 在1和10之间的所有数据。

如果还有另外的条件就直接加在后边就可以了。
比如:
SELECT * FROM TABLE WHERE id BETWEEN 1 AND 10 AND add_time=2012;

查询table表中id在1和10之间并且add_time等于2012的所有数据。

注意:
SELECT * FROM TABLE WHERE id BETWEEN a AND b   a必须是下限值,b必须是上

限值 用通俗一点的话说就是 a比较小的值 b就比较大的值。如果a b两个是字符

串的时候 a的值必须是较早插入数据库的  b的值就是相对a来说较晚插入数据库的值。
如果两个值写反了,不会提示报错,但是返回的结果集是空的。一定要注意这个问题!

开启ssi(apache配置)

2012 年 12 月 1 日 at 下午 11:08分类:Apache

在 apache配置文件 httpd.conf 文件中找到

#AddType text/html .shtml

#AddOutputFilter INCLUDES .shtml    (408行左右)

修改为

AddType text/html .shtml

AddOutputFilter INCLUDES .shtml

再找到 Options Indexes FollowSymLinks(219行左右) 这一行,

修改为

Options Indexes FollowSymLinks Includes

重新启动apache服务器,设置完成!

 

ecshop后台商品列表搜索关键字修改

2012 年 11 月 21 日 at 下午 9:48分类:ecshop

ecshop后台商品列表的关键字,默认只能搜索商品编号和商品名称。

找到根目录下面admin/includes 下面 lib_goods.php文件, 大概在882行左右这里就是控制

搜索关键字能搜索的字段。

例如:我们想要添加可以搜索商品本店售价的,

$where .= ” AND (goods_sn LIKE ‘%” . mysql_like_quote($filter['keyword']) . “%’ OR goods_name LIKE ‘%” . mysql_like_quote($filter['keyword']) . “%’ OR shop_price LIKE ‘%” . mysql_like_quote($filter['keyword']) . “%’)”;

只要添加红色部分的字体就ok了 。 如果想再加别的字段 可以直接 复制红色部分 粘贴在后边  修改一下所需要的字段名称就ok了。