论坛
BBS
空间测绘
发表
发布文章
提问答疑
搜索
您还未登录
登录后即可体验更多功能
立即登录
我的收藏
提问答疑
我要投稿
代码审计
[899] 2019-03-26_PHP代码审计笔记--SQL注入
文档创建者:
s7ckTeam
浏览次数:
12
最后更新:
2025-01-16
代码审计
12 人阅读
|
0 人回复
s7ckTeam
s7ckTeam
当前在线
积分
-56
6万
主题
-6万
回帖
-56
积分
管理员
积分
-56
发消息
2019-03-26_PHP代码审计笔记--SQL注入
P
H
P
代
码
审
计
笔
记
-
-
S
Q
L
注
入
原
创
B
y
p
a
s
s
B
y
p
a
s
s
2
0
1
9
-
0
3
-
2
6
0
X
0
1
普
通
注
入
普
通
注
入
S
Q
L
参
数
拼
接
,
未
做
任
何
过
滤
漏
洞
示
例
代
码
:
测
试
语
句
:
i
d
=
1
U
N
I
O
N
S
E
L
E
C
T
u
s
e
r
(
)
,
2
,
3
,
4
f
r
o
m
u
s
e
r
s
0
x
0
2
宽
字
节
注
入
宽
字
节
注
入
A
、
M
Y
S
Q
L
中
的
宽
字
符
注
入
漏
洞
示
例
代
码
:
测
试
语
句
:
%
d
f
%
2
7
<
?
p
h
p
$
c
o
n
=
m
y
s
q
l
_
c
o
n
n
e
c
t
(
"
l
o
c
a
l
h
o
s
t
"
,
"
r
o
o
t
"
,
"
r
o
o
t
"
)
;
i
f
(
!
$
c
o
n
)
{
d
i
e
(
'
C
o
u
l
d
n
o
t
c
o
n
n
e
c
t
:
'
.
m
y
s
q
l
_
e
r
r
o
r
(
)
)
;
}
m
y
s
q
l
_
s
e
l
e
c
t
_
d
b
(
"
t
e
s
t
"
,
$
c
o
n
)
;
$
i
d
=
s
t
r
i
p
c
s
l
a
s
h
e
s
(
$
_
R
E
Q
U
E
S
T
[
'
i
d
'
]
)
;
$
q
u
e
r
y
=
"
S
E
L
E
C
T
*
F
R
O
M
u
s
e
r
s
W
H
E
R
E
i
d
=
$
i
d
"
;
$
r
e
s
u
l
t
=
m
y
s
q
l
_
q
u
e
r
y
(
$
q
u
e
r
y
)
o
r
d
i
e
(
'
<
p
r
e
>
'
.
m
y
s
q
l
_
e
r
r
o
r
(
)
.
'
<
/
p
r
e
>
'
)
;
w
h
i
l
e
(
$
r
o
w
=
m
y
s
q
l
_
f
e
t
c
h
_
a
r
r
a
y
(
$
r
e
s
u
l
t
)
)
{
e
c
h
o
$
r
o
w
[
'
0
'
]
.
"
"
.
$
r
o
w
[
'
1
'
]
;
e
c
h
o
"
<
b
r
/
>
"
;
}
e
c
h
o
"
<
b
r
/
>
"
;
e
c
h
o
$
q
u
e
r
y
;
m
y
s
q
l
_
c
l
o
s
e
(
$
c
o
n
)
;
?
>
<
?
p
h
p
$
c
o
n
=
m
y
s
q
l
_
c
o
n
n
e
c
t
(
"
l
o
c
a
l
h
o
s
t
"
,
"
r
o
o
t
"
,
"
r
o
o
t
"
)
;
m
y
s
q
l
_
q
u
e
r
y
(
"
S
E
T
N
A
M
E
S
'
g
b
k
'
"
)
;
m
y
s
q
l
_
s
e
l
e
c
t
_
d
b
(
"
t
e
s
t
"
,
$
c
o
n
)
;
$
i
d
=
i
s
s
e
t
(
$
_
G
E
T
[
'
i
d
'
]
)
?
a
d
d
s
l
a
s
h
e
s
(
$
_
G
E
T
[
'
i
d
'
]
)
:
1
;
$
q
u
e
r
y
=
"
S
E
L
E
C
T
*
F
R
O
M
u
s
e
r
s
W
H
E
R
E
i
d
=
'
{
$
i
d
}
'
"
;
$
r
e
s
u
l
t
=
m
y
s
q
l
_
q
u
e
r
y
(
$
q
u
e
r
y
)
o
r
d
i
e
(
'
<
p
r
e
>
'
.
m
y
s
q
l
_
e
r
r
o
r
(
)
.
'
<
/
p
r
e
>
'
)
;
w
h
i
l
e
(
$
r
o
w
=
m
y
s
q
l
_
f
e
t
c
h
_
a
r
r
a
y
(
$
r
e
s
u
l
t
)
)
{
e
c
h
o
$
r
o
w
[
'
0
'
]
.
"
"
.
$
r
o
w
[
'
1
'
]
;
e
c
h
o
"
<
b
r
/
>
"
;
}
e
c
h
o
"
<
b
r
/
>
"
;
e
c
h
o
$
q
u
e
r
y
;
m
y
s
q
l
_
c
l
o
s
e
(
$
c
o
n
)
;
?
>
m
y
s
q
l
的
特
性
,
因
为
g
b
k
是
多
字
节
编
码
,
两
个
字
节
代
表
一
个
汉
字
,
所
以
%
d
f
和
后
面
的
也
就
是
%
5
c
变
成
了
一
个
汉
字
“
運
”
,
而
’
逃
逸
了
出
来
。
根
据
g
b
k
编
码
,
第
一
个
字
节
a
s
c
i
i
码
大
于
1
2
8
,
基
本
上
就
可
以
了
。
比
如
我
们
不
用
%
d
f
,
用
%
a
1
也
可
以
.
g
b
2
3
1
2
编
码
的
取
值
范
围
。
它
的
高
位
范
围
是
0
x
A
1
~
0
x
F
7
,
低
位
范
围
是
0
x
A
1
~
0
x
F
E
,
而
是
0
x
5
c
,
是
不
在
低
位
范
围
中
的
。
所
以
,
0
x
5
c
根
本
不
是
g
b
2
3
1
2
中
的
编
码
,
所
以
不
会
造
成
宽
字
节
注
入
。
扩
展
到
世
界
上
所
有
多
字
节
编
码
,
只
要
低
位
的
范
围
中
含
有
0
x
5
c
的
编
码
,
就
可
以
进
行
宽
字
符
注
入
。
宽
字
符
注
入
的
修
复
:
方
案
一
:
指
定
p
h
p
连
接
m
y
s
q
l
的
字
符
集
m
y
s
q
l
_
s
e
t
_
c
h
a
r
s
e
t
(
'
g
b
k
'
,
$
c
o
n
n
)
;
$
i
d
=
m
y
s
q
l
_
r
e
a
l
_
e
s
c
a
p
e
_
s
t
r
i
n
g
(
$
_
G
E
T
[
'
i
d
'
]
)
;
方
案
二
:
将
c
h
a
r
a
c
t
e
r
_
s
e
t
_
c
l
i
e
n
t
设
置
为
b
i
n
a
r
y
(
二
进
制
)
m
y
s
q
l
_
q
u
e
r
y
(
"
S
E
T
c
h
a
r
a
c
t
e
r
_
s
e
t
_
c
o
n
n
e
c
t
i
o
n
=
g
b
k
,
c
h
a
r
a
c
t
e
r
_
s
e
t
_
r
e
s
u
l
t
s
=
g
b
k
,
c
h
a
r
a
c
t
e
r
_
s
e
t
_
c
l
i
e
n
t
=
b
i
n
a
r
y
"
,
$
c
o
n
n
)
;
将
c
h
a
r
a
c
t
e
r
_
s
e
t
_
c
l
i
e
n
t
设
置
成
b
i
n
a
r
y
,
就
不
存
在
宽
字
节
或
多
字
节
的
问
题
了
,
所
有
数
据
以
二
进
制
的
形
式
传
递
,
就
能
有
效
避
免
宽
字
符
注
入
。
B
、
P
H
P
编
码
转
换
漏
洞
示
例
代
码
:
测
试
语
句
:
錦
'
錦
这
个
字
:
它
的
u
t
f
-
8
编
码
是
%
e
9
%
8
c
%
a
6
,
它
的
g
b
k
编
码
是
%
e
5
%
5
c
錦
被
i
c
o
n
v
从
u
t
f
-
8
转
换
成
g
b
k
后
,
变
成
了
%
e
5
%
5
c
,
而
后
面
的
’
被
a
d
d
s
l
a
s
h
e
s
变
成
了
%
5
c
%
2
7
,
这
样
组
合
起
来
就
是
%
e
5
%
5
c
%
5
c
%
2
7
,
两
个
%
5
c
就
是
,
正
好
把
反
斜
杠
转
义
了
,
导
致
’
逃
逸
出
单
引
号
,
产
生
注
入
。
<
?
p
h
p
$
c
o
n
=
m
y
s
q
l
_
c
o
n
n
e
c
t
(
"
l
o
c
a
l
h
o
s
t
"
,
"
r
o
o
t
"
,
"
r
o
o
t
"
)
;
m
y
s
q
l
_
q
u
e
r
y
(
"
S
E
T
N
A
M
E
S
'
g
b
k
'
"
)
;
m
y
s
q
l
_
s
e
l
e
c
t
_
d
b
(
"
t
e
s
t
"
,
$
c
o
n
)
;
m
y
s
q
l
_
q
u
e
r
y
(
"
S
E
T
c
h
a
r
a
c
t
e
r
_
s
e
t
_
c
o
n
n
e
c
t
i
o
n
=
g
b
k
,
c
h
a
r
a
c
t
e
r
_
s
e
t
_
r
e
s
u
l
t
s
=
g
b
k
,
c
h
a
r
a
c
t
e
r
_
s
e
t
_
c
l
i
e
n
t
=
b
i
n
a
r
y
"
,
$
c
o
n
)
;
$
i
d
=
i
s
s
e
t
(
$
_
G
E
T
[
'
i
d
'
]
)
?
a
d
d
s
l
a
s
h
e
s
(
$
_
G
E
T
[
'
i
d
'
]
)
:
1
;
$
i
d
=
i
c
o
n
v
(
'
u
t
f
-
8
'
,
'
g
b
k
'
,
$
i
d
)
;
$
q
u
e
r
y
=
"
S
E
L
E
C
T
*
F
R
O
M
u
s
e
r
s
W
H
E
R
E
i
d
=
'
{
$
i
d
}
'
"
;
$
r
e
s
u
l
t
=
m
y
s
q
l
_
q
u
e
r
y
(
$
q
u
e
r
y
)
o
r
d
i
e
(
'
<
p
r
e
>
'
.
m
y
s
q
l
_
e
r
r
o
r
(
)
.
'
<
/
p
r
e
>
'
)
;
w
h
i
l
e
(
$
r
o
w
=
m
y
s
q
l
_
f
e
t
c
h
_
a
r
r
a
y
(
$
r
e
s
u
l
t
)
)
{
e
c
h
o
$
r
o
w
[
'
0
'
]
.
"
"
.
$
r
o
w
[
'
1
'
]
;
e
c
h
o
"
<
b
r
/
>
"
;
}
e
c
h
o
"
<
b
r
/
>
"
;
e
c
h
o
$
q
u
e
r
y
;
m
y
s
q
l
_
c
l
o
s
e
(
$
c
o
n
)
;
?
>
$
i
d
=
i
c
o
n
v
(
'
g
b
k
'
,
'
u
t
f
-
8
'
,
$
i
d
)
;
/
/
使
用
%
d
f
%
2
7
来
测
试
一
个
g
b
k
汉
字
2
字
节
,
u
t
f
-
8
汉
字
3
字
节
,
如
果
我
们
把
g
b
k
转
换
成
u
t
f
-
8
,
则
p
h
p
会
每
两
个
字
节
一
转
换
。
所
以
,
如
果
’
前
面
的
字
符
是
奇
数
的
话
,
势
必
会
吞
掉
,
’
逃
出
限
制
。
其
他
函
数
:
m
b
_
c
o
n
v
e
r
t
_
e
n
c
o
d
i
n
g
(
$
i
d
,
'
u
t
f
-
8
'
,
'
g
b
k
'
)
/
/
G
B
K
T
o
U
T
F
-
8
与
i
c
o
n
v
(
'
g
b
k
'
,
'
u
t
f
-
8
'
,
$
i
d
)
一
样
0
x
0
3
编
码
解
码
编
码
解
码
找
一
些
编
码
解
码
的
函
数
来
绕
过
防
护
,
如
u
r
l
d
e
c
o
d
e
(
)
、
r
a
w
u
r
l
d
e
c
o
d
e
(
)
、
b
a
s
e
6
4
_
d
e
c
o
d
e
(
)
漏
洞
示
例
代
码
:
测
试
语
句
:
双
重
U
R
L
e
n
c
o
d
e
编
码
绕
过
,
可
通
过
编
写
t
a
m
p
e
r
绕
过
U
R
L
e
n
c
o
d
e
双
重
编
码
,
t
a
m
p
e
r
脚
本
如
下
:
0
x
0
4
二
次
注
入
二
次
注
入
入
库
后
转
义
符
就
会
消
失
,
变
成
h
a
c
k
'
,
查
询
出
库
的
就
是
h
a
c
k
'
,
如
果
拼
接
到
S
Q
L
语
句
,
成
功
引
入
了
单
引
号
闭
合
前
面
字
符
,
导
致
注
<
?
p
h
p
$
c
o
n
=
m
y
s
q
l
_
c
o
n
n
e
c
t
(
"
l
o
c
a
l
h
o
s
t
"
,
"
r
o
o
t
"
,
"
r
o
o
t
"
)
;
m
y
s
q
l
_
s
e
l
e
c
t
_
d
b
(
"
t
e
s
t
"
,
$
c
o
n
)
;
$
i
d
=
a
d
d
s
l
a
s
h
e
s
(
$
_
R
E
Q
U
E
S
T
[
'
i
d
'
]
)
;
$
i
d
=
u
r
l
d
e
c
o
d
e
(
$
i
d
)
;
/
/
$
i
d
=
b
a
s
e
6
4
_
d
e
c
o
d
e
(
$
i
d
)
;
$
q
u
e
r
y
=
"
S
E
L
E
C
T
*
F
R
O
M
u
s
e
r
s
W
H
E
R
E
i
d
=
'
{
$
i
d
}
'
"
;
$
r
e
s
u
l
t
=
m
y
s
q
l
_
q
u
e
r
y
(
$
q
u
e
r
y
)
o
r
d
i
e
(
'
<
p
r
e
>
'
.
m
y
s
q
l
_
e
r
r
o
r
(
)
.
'
<
/
p
r
e
>
'
)
;
w
h
i
l
e
(
$
r
o
w
=
m
y
s
q
l
_
f
e
t
c
h
_
a
r
r
a
y
(
$
r
e
s
u
l
t
)
)
{
e
c
h
o
$
r
o
w
[
'
0
'
]
.
"
"
.
$
r
o
w
[
'
1
'
]
;
e
c
h
o
"
<
b
r
/
>
"
;
}
e
c
h
o
"
<
b
r
/
>
"
;
e
c
h
o
$
q
u
e
r
y
;
m
y
s
q
l
_
c
l
o
s
e
(
$
c
o
n
)
;
?
>
1
'
u
n
i
o
n
s
e
l
e
c
t
1
,
2
,
3
,
4
%
2
3
单
引
号
U
r
l
e
n
c
o
d
e
1
%
2
5
2
7
u
n
i
o
n
s
e
l
e
c
t
1
,
2
,
3
,
4
%
2
3
#
!
/
u
s
r
/
b
i
n
/
e
n
v
p
y
t
h
o
n
i
m
p
o
r
t
r
e
f
r
o
m
u
r
l
l
i
b
i
m
p
o
r
t
q
u
o
t
e
f
r
o
m
l
i
b
.
c
o
r
e
.
d
a
t
a
i
m
p
o
r
t
k
b
f
r
o
m
l
i
b
.
c
o
r
e
.
e
n
u
m
s
i
m
p
o
r
t
P
R
I
O
R
I
T
Y
_
_
p
r
i
o
r
i
t
y
_
_
=
P
R
I
O
R
I
T
Y
.
N
O
R
M
A
L
d
e
f
d
e
p
e
n
d
e
n
c
i
e
s
(
)
:
p
a
s
s
d
e
f
t
a
m
p
e
r
(
p
a
y
l
o
a
d
,
*
*
k
w
a
r
g
s
)
:
r
e
t
V
a
l
=
p
a
y
l
o
a
d
r
e
t
V
a
l
=
q
u
o
t
e
(
q
u
o
t
e
(
r
e
t
V
a
l
)
)
r
e
t
u
r
n
r
e
t
V
a
l
入
。
测
试
:
漏
洞
测
试
代
码
:
C
R
E
A
T
E
T
A
B
L
E
t
e
s
t
(
u
s
e
r
V
A
R
C
H
A
R
(
2
0
)
N
O
T
N
U
L
L
)
;
I
N
S
E
R
T
I
N
T
O
t
e
s
t
v
a
l
u
e
s
(
'
h
a
c
k
'
'
)
;
/
/
测
试
数
据
c
r
e
a
t
e
t
a
b
l
e
t
e
s
t
(
i
d
I
N
T
N
O
T
N
U
L
L
,
u
s
e
r
V
A
R
C
H
A
R
(
1
0
0
)
N
O
T
N
U
L
L
,
p
a
s
s
V
A
R
C
H
A
R
(
1
0
0
)
N
O
T
N
U
L
L
)
I
N
S
E
R
T
I
N
T
O
t
e
s
t
v
a
l
u
e
s
(
1
,
'
h
a
c
k
'
,
'
h
a
c
k
'
)
;
/
/
测
试
代
码
<
?
p
h
p
$
c
o
n
=
m
y
s
q
l
_
c
o
n
n
e
c
t
(
"
l
o
c
a
l
h
o
s
t
"
,
"
r
o
o
t
"
,
"
r
o
o
t
"
)
;
m
y
s
q
l
_
s
e
l
e
c
t
_
d
b
(
"
t
e
s
t
"
,
$
c
o
n
)
;
m
y
s
q
l
_
q
u
e
r
y
(
"
S
E
T
c
h
a
r
a
c
t
e
r
_
s
e
t
_
c
o
n
n
e
c
t
i
o
n
=
g
b
k
,
c
h
a
r
a
c
t
e
r
_
s
e
t
_
r
e
s
u
l
t
s
=
g
b
k
,
c
h
a
r
a
c
t
e
r
_
s
e
t
_
c
l
i
e
n
t
=
b
i
n
a
r
y
"
,
$
c
o
n
)
;
/
/
u
p
d
a
t
e
入
库
i
f
(
i
s
s
e
t
(
$
_
G
E
T
[
'
k
e
y
'
]
)
)
{
$
k
e
y
=
a
d
d
s
l
a
s
h
e
s
(
$
_
R
E
Q
U
E
S
T
[
'
k
e
y
'
]
)
;
$
q
u
e
r
y
=
"
u
p
d
a
t
e
t
e
s
t
s
e
t
u
s
e
r
=
'
{
$
k
e
y
}
'
w
h
e
r
e
i
d
=
1
"
;
e
c
h
o
"
I
N
S
E
R
T
S
Q
L
:
"
.
$
q
u
e
r
y
.
"
<
b
r
/
>
"
;
$
r
e
s
u
l
t
=
m
y
s
q
l
_
q
u
e
r
y
(
$
q
u
e
r
y
)
;
}
/
/
s
e
l
e
c
t
出
库
,
并
带
入
查
询
$
q
u
e
r
y
=
"
S
E
L
E
C
T
*
F
R
O
M
t
e
s
t
W
H
E
R
E
i
d
=
1
"
;
$
r
e
s
u
l
t
=
m
y
s
q
l
_
q
u
e
r
y
(
$
q
u
e
r
y
)
;
$
r
o
w
=
m
y
s
q
l
_
f
e
t
c
h
_
r
o
w
(
$
r
e
s
u
l
t
)
;
e
c
h
o
"
<
b
r
/
>
"
;
$
q
u
e
r
y
=
"
S
E
L
E
C
T
*
F
R
O
M
t
e
s
t
W
H
E
R
E
u
s
e
r
=
'
{
$
r
o
w
[
1
]
}
'
"
;
p
r
i
n
t
_
r
(
'
S
E
L
E
C
T
S
Q
L
:
'
.
$
q
u
e
r
y
.
'
<
b
r
/
>
'
)
;
$
r
e
s
u
l
t
=
m
y
s
q
l
_
q
u
e
r
y
(
$
q
u
e
r
y
)
o
r
d
i
e
(
'
<
p
r
e
>
'
.
m
y
s
q
l
_
e
r
r
o
r
(
)
.
'
<
/
p
r
e
>
'
)
;
;
e
c
h
o
"
<
b
r
/
>
"
;
p
r
i
n
t
_
r
(
m
y
s
q
l
_
f
e
t
c
h
_
r
o
w
(
$
r
e
s
u
l
t
)
)
;
m
y
s
q
l
_
c
l
o
s
e
(
$
c
o
n
)
;
漏
洞
演
示
:
0
x
0
5
全
局
防
护
盲
点
全
局
防
护
盲
点
1
、
s
t
r
_
r
e
p
l
a
c
e
函
数
过
滤
单
引
号
等
,
可
能
造
成
注
入
;
2
、
s
t
r
i
p
s
l
a
s
h
e
s
(
)
函
数
删
除
由
a
d
d
s
l
a
s
h
e
s
(
)
函
数
添
加
的
反
斜
杠
。
s
t
r
i
p
s
l
a
s
h
e
s
函
数
使
用
不
当
,
可
能
造
成
注
入
;
①
注
入
点
类
似
i
d
=
1
这
种
整
型
的
参
数
就
会
完
全
无
视
G
P
C
的
过
滤
;
②
注
入
点
包
含
键
值
对
的
,
那
么
这
里
只
检
测
了
v
a
l
u
e
,
对
k
e
y
的
过
滤
就
没
有
防
护
;
③
有
时
候
全
局
的
过
滤
只
过
滤
掉
G
E
T
、
P
O
S
T
和
C
O
O
K
I
E
,
但
是
没
过
滤
S
E
R
V
E
R
。
①
F
I
L
E
S
注
入
,
全
局
只
转
义
掉
G
E
T
、
P
O
S
T
等
传
来
的
参
数
,
遗
漏
了
F
I
L
E
S
;
②
变
量
覆
盖
,
危
险
函
数
:
e
x
t
r
a
c
t
(
)
、
p
a
r
s
e
_
s
t
r
(
)
、
$
$
。
0
X
0
6
漏
洞
防
护
漏
洞
防
护
基
本
思
路
:
输
入
(
解
决
数
字
型
注
入
)
-
-
-
-
-
-
-
转
义
处
理
(
解
决
字
符
型
注
入
)
-
-
-
-
-
-
-
输
出
(
解
决
数
据
库
报
错
)
1
、
检
查
输
入
的
数
据
是
否
具
有
所
期
望
的
数
据
格
式
。
P
H
P
有
很
多
可
以
用
于
检
查
输
入
的
函
数
,
从
简
单
的
变
量
函
数
和
字
符
类
型
函
数
(
比
如
i
s
_
n
u
m
e
r
i
c
(
)
,
c
t
y
p
e
_
d
i
g
i
t
(
)
)
到
复
杂
的
P
e
r
l
兼
容
正
则
表
达
式
函
数
都
可
以
完
成
这
个
工
作
。
如
果
程
序
等
待
输
入
一
个
数
字
,
可
以
考
虑
使
用
i
s
_
n
u
m
e
r
i
c
(
)
来
检
查
,
或
者
直
接
使
用
s
e
t
t
y
p
e
(
)
来
转
换
它
的
类
型
,
也
可
以
用
s
p
r
i
n
t
f
(
)
把
它
格
式
化
为
数
字
。
2
、
P
H
P
内
置
转
义
函
数
3
、
数
据
库
报
错
信
息
泄
露
防
范
:
把
p
h
p
.
i
n
i
文
件
d
i
s
p
l
a
y
_
e
r
r
o
r
s
=
O
f
f
,
数
据
库
查
询
函
数
前
面
加
一
个
@
字
符
最
有
效
可
预
防
S
Q
L
注
入
攻
击
的
防
御
方
式
:
预
处
理
技
术
进
行
数
据
库
查
询
:
防
御
代
码
示
例
:
?
>
A
d
d
s
l
a
s
h
e
s
(
)
h
t
t
p
:
/
/
p
h
p
.
n
e
t
/
m
a
n
u
a
l
/
z
h
/
f
u
n
c
t
i
o
n
.
a
d
d
s
l
a
s
h
e
s
.
p
h
p
m
a
g
i
c
_
q
u
o
t
e
_
g
p
c
h
t
t
p
:
/
/
p
h
p
.
n
e
t
/
m
a
n
u
a
l
/
z
h
/
i
n
f
o
.
c
o
n
f
i
g
u
r
a
t
i
o
n
.
p
h
p
#
i
n
i
.
m
a
g
i
c
-
q
u
o
t
e
s
-
g
p
c
m
y
s
q
l
_
r
e
a
l
_
e
s
c
a
p
e
_
s
t
r
i
n
g
(
)
h
t
t
p
:
/
/
p
h
p
.
n
e
t
/
m
a
n
u
a
l
/
z
h
/
f
u
n
c
t
i
o
n
.
m
y
s
q
l
-
r
e
a
l
-
e
s
c
a
p
e
-
s
t
r
i
n
g
.
p
h
p
m
y
s
q
l
_
e
s
c
a
p
e
_
s
t
r
i
n
g
(
)
h
t
t
p
:
/
/
p
h
p
.
n
e
t
/
m
a
n
u
a
l
/
z
h
/
f
u
n
c
t
i
o
n
.
m
y
s
q
l
-
e
s
c
a
p
e
-
s
t
r
i
n
g
.
p
h
p
<
?
p
h
p
$
m
y
s
q
l
i
=
n
e
w
M
y
S
Q
L
i
(
"
l
o
c
a
l
h
o
s
t
"
,
"
r
o
o
t
"
,
"
r
o
o
t
"
,
"
t
e
s
t
"
)
;
i
f
(
!
$
m
y
s
q
l
i
)
{
d
i
e
(
$
m
y
s
q
l
i
-
>
e
r
r
o
r
)
;
}
$
s
q
l
=
"
s
e
l
e
c
t
i
d
,
u
s
e
r
n
a
m
e
,
p
a
s
s
w
o
r
d
f
r
o
m
u
s
e
r
s
w
h
e
r
e
i
d
=
?
"
;
/
/
/
/
创
建
一
个
预
定
义
的
对
象
?
占
位
$
s
q
l
=
"
s
e
l
e
c
t
i
d
,
u
s
e
r
n
a
m
e
,
p
a
s
s
w
o
r
d
f
r
o
m
u
s
e
r
s
w
h
e
r
e
i
d
=
?
"
;
/
/
/
/
创
建
一
个
预
定
义
的
对
象
?
占
位
$
m
y
s
q
l
i
_
s
t
m
t
=
$
m
y
s
q
l
i
-
>
p
r
e
p
a
r
e
(
$
s
q
l
)
;
$
i
d
=
$
_
R
E
Q
U
E
S
T
[
'
i
d
'
]
;
$
m
y
s
q
l
i
_
s
t
m
t
-
>
b
i
n
d
_
p
a
r
a
m
(
"
i
"
,
$
i
d
)
;
/
/
/
/
绑
定
参
数
$
m
y
s
q
l
i
_
s
t
m
t
-
>
b
i
n
d
_
r
e
s
u
l
t
(
$
i
d
,
$
u
s
e
r
n
a
m
e
,
$
p
a
s
s
w
o
r
d
)
;
/
/
/
/
绑
定
结
果
集
$
m
y
s
q
l
i
_
s
t
m
t
-
>
e
x
e
c
u
t
e
(
)
;
/
/
执
行
w
h
i
l
e
(
$
m
y
s
q
l
i
_
s
t
m
t
-
>
f
e
t
c
h
(
)
)
{
/
/
取
出
绑
定
的
结
果
集
e
c
h
o
$
i
d
.
"
"
.
$
u
s
e
r
n
a
m
e
.
"
"
.
$
p
a
s
s
w
o
r
d
;
}
e
c
h
o
"
<
b
r
/
>
"
;
e
c
h
o
$
s
q
l
;
$
m
y
s
q
l
i
_
s
t
m
t
-
>
f
r
e
e
_
r
e
s
u
l
t
(
)
;
/
/
/
/
关
闭
结
果
集
$
m
y
s
q
l
i
_
s
t
m
t
-
>
c
l
o
s
e
(
)
;
$
m
y
s
q
l
i
-
>
c
l
o
s
e
(
)
;
?
>
回复
举报
上一个主题
下一个主题
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
!disable!!post_parseurl!
使用Markdown编辑器编辑
使用富文本编辑器编辑
回帖后跳转到最后一页
浏览过的版块
golang