- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章PHP7原生MySQL数据库操作实现代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
php7中mysql的连接与使用与PHP5中大不相同 。
PHP5中mysql_connect()等函数大多被PHP7中类的成员函数所代替。PHP5中连接mysql是过程性的,而PHP7中强调了类的使用与面向对象的方法 。
1
2
3
4
|
$user
=
new
mysqli();
//Connect to mysql
$user
->connect(
"localhost"
,
"root"
,
"q721@Ms67"
,
"Student"
);
|
mysql的连接被mysqli类所替代 。
1
2
3
4
|
//Search in mysql
$query
=
'SELECT * FROM users'
;
//Use a variable to save result
$result
=
$user
->query(
$query
);
|
查询语句也变成了类的成员函数 。
连接到 MySQL服务器 。
mysqli_connect(host, username, password [,dbname] [,port]); - 参数: host:MySQL服务器。可以包含端口号,默认值为“localhost:3306” username:用户名。默认值是服务器进程所有者的用户名; password:密码。 dbname:数据库名称。 port:MySQL服务器的端口号,默认为3306。 - 返回值:如果连接成功,则返回 mysqli 连接对象。如果失败,则返回 false.
实例代码一 。
1
2
3
4
5
6
7
8
9
|
<?php
$mysqli
=
new
mysqli(
"localhost"
,
"root"
,
"password"
,
"testgame"
);
if
(!
$mysqli
) {
echo
"database error"
;
}
else
{
echo
"php env successful"
;
}
$mysqli
->close();
?>
|
localhost 意思是本地主机,如果你是在自己电脑上的话,这项就不用改了 root是mysql的用户名,如果你是默认的没有修改,也不用管,直接copy password 这事mysql的密码,如果你没有试着的话,直接写空的就行,""这样哦 。
代码二 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?php
/* Connect to a MySQL server 连接数据库服务器 */
$link
= mysqli_connect(
'localhost'
,
/* The host to connect to 连接MySQL地址 */
'root'
,
/* The user to connect as 连接MySQL用户名 */
'root'
,
/* The password to use 连接MySQL密码 */
'lucax_database'
);
/* The default database to query 连接数据库名称*/
if
(!
$link
) {
printf(
"Can't connect to MySQL Server. Errorcode: %s "
, mysqli_connect_error());
exit
;
}
else
echo
'数据库连接上了!'
;
/* Close the connection 关闭连接*/
mysqli_close(
$link
);
?>
|
代码三 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?php
$servername
=
"localhost"
;
$username
=
"root"
;
$password
=
"root"
;
$dbname
=
"myDB"
;
// 创建连接
# Tip: 如果你使用其他端口(默认为3306),为数据库参数添加空字符串,如:
new
mysqli(
"localhost"
,
"username"
,
"password"
,
""
, port)
$conn
=
new
mysqli(
$servername
,
$username
,
$password
,
$dbname
);
// 检测连接
if
(
$conn
->connect_error) {
die
(
"连接失败: "
.
$conn
->connect_error);
}
echo
"连接成功"
;
$conn
->close();
?>
|
选择当前数据库 。
mysqli_select_db(mysqliLink, database) - 描述:一个数据库服务器可能包含很多的数据库,通常需要针对某个具体的数据库进行编程 - 返回值:如果成功返回TRUE,失败则返回FALSE 。
设置客户端字符集 。
mysqli_set_charset(mysqliLink, charset) - 描述:设置默认字符编码 - 返回:成功时返回 TRUE, 或者在失败时返回 FALSE.
发送一条 MySQL 查询 。
mysqli_query(mysqliLink , queryStr) - 参数: query是查询字符串; link是创建的活动的数据库连接; - 说明:mysqli_query() 仅对 SELECT,SHOW 或 DESCRIBE 语句返回一个mysqli_result结果集对象,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysqli_query()在执行成功时返回 TRUE,出错时返回 FALSE。非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。 - 注意:查询字符串不应以分号结束,和命令行模式下有区别.
从结果集中取得一行作为关联数组,或数字数组,或二者兼有 。
mysqli_fetch_array ( mysqliResult [, resultType] ) - 参数:resultType是一个常量,取值:MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引) - 返回:返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。 - 注意:本函数返回的字段名区分大小写.
从结果集中取得所有行作为关联数组、枚举数组、或二者兼有 。
mysqli_fetch_all(mysqliResult [, resultType ]) - 参数:$result_type是一个常量,取值:MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引) - 返回:返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。 - 注意:本函数返回的字段名区分大小写.
取得结果集中行的数目 。
mysqli_num_rows(mysqliResult) - 注意:此命令仅对 SELECT 语句有效.
从结果集中取得一行作为关联数组 。
array mysqli_fetch_assoc(mysqliResult) - 返回值:从结果集取得的行生成的关联数组,如果没有更多行则返回 FALSE; - 注意:此函数返回的字段名大小写敏感.
取得前一次 MySQL 操作所影响的记录行数 。
mysqli_affected_rows ( mysqliLink ) - 说明:取得最近一次与 $link 关联的 SELECT、INSERT、UPDATE 或 DELETE 查询所影响的记录行数。 - 注意:如果最近一次查询失败,函数返回-1。当使用UPDATE查询,MySQL不会将原值和新值一样的值更新,返回值不一定就是查询条件所符合的记录,只有修改过的记录数才会被返回.
释放与结果集相关联的内存 。
mysqli_free_result(mysqliResult) - 参数:mysqliResult为结果集对象.
返回上一个 MySQL 连接产生的文本错误信息 。
mysqli_connect_error() - 参数:没有参数 。
php7创建数据库:
方法一
1
2
3
4
5
6
|
$sql
=
"CREATE DATABASE myDB3"
;
if
(mysqli_query(
$conn
,
$sql
)) {
echo
"数据库创建成功"
;
}
else
{
echo
"Error creating database: "
. mysqli_error(
$conn
);
}
|
方法二
1
2
3
4
5
6
7
8
9
10
11
12
|
// 检测连接
if
(
$conn
->connect_error) {
die
(
"连接失败: "
.
$conn
->connect_error);
}
echo
"连接成功"
;
$sql
=
"CREATE DATABASE myDB2"
;
if
(
$conn
->query(
$sql
) === TRUE) {
echo
"数据库创建成功"
;
}
else
{
echo
"Error creating database: "
.
$conn
->error;
}
|
创建表的方法:
方法一
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
// 使用 sql 创建数据表
$sql
= "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
if
(mysqli_query(
$conn
,
$sql
)) {
echo
"数据表 MyGuests 创建成功"
;
}
else
{
echo
"创建数据表错误: "
. mysqli_error(
$conn
);
}
|
方法二
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
// 使用 sql 创建数据表
$sql
= "CREATE TABLE MyGuests2 (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
if
(
$conn
->query(
$sql
) === TRUE) {
echo
"Table MyGuests created successfully"
;
}
else
{
echo
"创建数据表错误: "
.
$conn
->error;
}
|
插入数据的方法
方法一
1
2
3
4
5
6
7
8
|
$sql
= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (
'John'
,
'Doe'
,
'john@example.com'
)";
if
(mysqli_query(
$conn
,
$sql
)) {
echo
"新记录插入成功"
;
}
else
{
echo
"Error: "
.
$sql
.
"<br>"
. mysqli_error(
$conn
);
}
|
方法二
1
2
3
4
5
6
7
8
|
$sql
= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (
'John'
,
'Doe'
,
'john@example.com'
)";
if
(
$conn
->query(
$sql
) === TRUE) {
echo
"新记录插入成功"
;
}
else
{
echo
"Error: "
.
$sql
.
"<br>"
.
$conn
->error;
}
|
插入多条数据的方法
方法一
1
2
3
4
5
6
7
8
9
10
11
12
|
$sql
= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (
'John'
,
'Doe'
,
'john@example.com'
);";
$sql
.= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (
'Mary'
,
'Moe'
,
'mary@example.com'
);";
$sql
.= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (
'Julie'
,
'Dooley'
,
'julie@example.com'
)";
if
(mysqli_multi_query(
$conn
,
$sql
)) {
echo
"新记录插入成功"
;
}
else
{
echo
"Error: "
.
$sql
.
"<br>"
. mysqli_error(
$conn
);
}
|
方法二:
1
2
3
4
5
6
7
8
9
10
11
12
|
$sql
= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (
'22'
,
'Doe'
,
'john@example.com'
);";
$sql
.= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (
'22'
,
'Moe'
,
'mary@example.com'
);";
$sql
.= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (
'22'
,
'Dooley'
,
'julie@example.com'
)";
if
(
$conn
->multi_query(
$sql
) === TRUE) {
echo
"新记录插入成功"
;
}
else
{
echo
"Error: "
.
$sql
.
"<br>"
.
$conn
->error;
}
|
查询数据库的方法:
方法一
1
2
3
4
5
6
7
8
9
10
11
|
$sql
=
"SELECT id, firstname, lastname FROM MyGuests"
;
$result
= mysqli_query(
$conn
,
$sql
);
if
(mysqli_num_rows(
$result
) > 0) {
// 输出数据
while
(
$row
= mysqli_fetch_assoc(
$result
)) {
echo
"id: "
.
$row
[
"id"
].
" - Name: "
.
$row
[
"firstname"
].
" "
.
$row
[
"lastname"
].
"<br>"
;
}
}
else
{
echo
"0 结果"
;
}
|
方法二:
1
2
3
4
5
6
7
8
9
10
11
|
$sql
=
"SELECT id, firstname, lastname FROM MyGuests"
;
$result
=
$conn
->query(
$sql
);
if
(
$result
->num_rows > 0) {
// 输出数据
while
(
$row
=
$result
->fetch_assoc()) {
echo
"id: "
.
$row
[
"id"
].
" - Name: "
.
$row
[
"firstname"
].
" "
.
$row
[
"lastname"
].
"<br>"
;
}
}
else
{
echo
"0 结果"
;
}
|
看到这里我小编再为大家分享一个整理好的类库 。
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
|
<?php
/**
* 数据库操作类
*/
!defined(
'ROOTNAME'
) &&
exit
(
'FORBIDDEN'
);
class
db_mysql{
var
$query_num
= 0;
var
$link
;
function
__construct(
$dbhost
,
$dbuser
,
$dbpw
,
$dbname
) {
$this
->connect(
$dbhost
,
$dbuser
,
$dbpw
,
$dbname
);
}
function
connect(
$dbhost
,
$dbuser
,
$dbpw
,
$dbname
) {
// global $dbcharset;
if
(!
$this
->link = @mysqli_connect(
$dbhost
,
$dbuser
,
$dbpw
,
$dbname
)) {
$this
->halt(
"Can not connect to MySQL server"
);
}
if
(
$this
->server_info() >
'5.0'
){
mysqli_query(
$this
->link,
"SET sql_mode=''"
);
}
/*
if($dbname) {
if (!@mysqli_select_db($dbname, $this->link)){
$this->halt('Cannot use database '.$dbname);
}
}*/
}
function
select_db(
$dbname
) {
$this
->dbname =
$dbname
;
if
(!@mysqli_select_db(
$dbname
,
$this
->link)){
$this
->halt(
'Cannot use database '
.
$dbname
);
}
}
function
server_info() {
return
mysqli_get_server_info(
$this
->link);
}
function
version() {
return
mysqli_get_server_info(
$this
->link);
}
function
insert(
$tableName
,
$column
=
array
()) {
$columnName
=
""
;
$columnValue
=
""
;
foreach
(
$column
as
$key
=>
$value
) {
$columnName
.=
$key
.
","
;
$columnValue
.=
"'"
.
$value
.
"',"
;
}
$columnName
=
substr
(
$columnName
, 0,
strlen
(
$columnName
) - 1);
$columnValue
=
substr
(
$columnValue
, 0,
strlen
(
$columnValue
) - 1);
$sql
=
"INSERT INTO $tableName($columnName) VALUES($columnValue)"
;
$this
->query(
$sql
);
}
function
update(
$tableName
,
$column
=
array
(),
$where
=
""
) {
$updateValue
=
""
;
foreach
(
$column
as
$key
=>
$value
) {
$updateValue
.=
$key
.
"='"
.
$value
.
"',"
;
}
$updateValue
=
substr
(
$updateValue
, 0,
strlen
(
$updateValue
) - 1);
$sql
=
"UPDATE $tableName SET $updateValue"
;
$sql
.=
$where
?
" WHERE $where"
: null;
$this
->query(
$sql
);
}
function
delete
(
$tableName
,
$where
=
""
){
$sql
=
"DELETE FROM $tableName"
;
$sql
.=
$where
?
" WHERE $where"
: null;
$this
->query(
$sql
);
}
function
select(
$tableName
,
$columnName
=
"*"
,
$where
=
""
) {
$sql
=
"SELECT "
.
$columnName
.
" FROM "
.
$tableName
;
$sql
.=
$where
?
" WHERE "
.
$where
: null;
$this
->query(
$sql
);
}
function
get_all(
$sql
,
$result_type
= MYSQLI_ASSOC) {
$query
=
$this
->query(
$sql
);
$i
= 0;
$rt
=
array
();
while
(
$row
=& mysqli_fetch_array(
$query
,
$result_type
)) {
$rt
[
$i
]=
$row
;
$i
++;
}
//$this->write_log("获取全部记录 ".$sql);
return
$rt
;
}
function
fetchRow(
$query
){
return
mysqli_fetch_assoc(
$query
);
}
function
query(
$sql
) {
//$this->write_log("查询 ".$sql);
mysqli_query(
$this
->link,
"set names utf8"
);
$query
= mysqli_query(
$this
->link,
$sql
);
//if(!$query) $this->halt('Query Error: ' . $sql);
return
$query
;
}
//获取第一个字段值
function
getOne(
$sql
,
$limited
= false){
if
(
$limited
== true){
$sql
= trim(
$sql
.
' LIMIT 1'
);
}
$res
=
$this
->query(
$sql
);
if
(
$res
!== false){
$row
= mysqli_fetch_row(
$res
);
if
(
$row
!== false){
return
$row
[0];
}
else
{
return
''
;
}
}
else
{
return
false;
}
}
function
fetch_array(
$query
,
$result_type
= MYSQLI_ASSOC) {
return
mysqli_fetch_array(
$query
,
$result_type
);
}
//输出记录
function
fetch_first(
$sql
) {
$res
=
$this
->query(
$sql
);
return
$this
->fetch_array(
$res
,MYSQLI_ASSOC);
}
// 取得一条数据记录
function
get_one(
$sql
,
$result_type
= MYSQLI_ASSOC){
$result
=
$this
->query(
$sql
);
$record
=
$this
->fetch_array(
$result
,
$result_type
);
return
$record
;
}
function
getRow(
$sql
,
$limited
= false){
if
(
$limited
== true){
$sql
= trim(
$sql
.
'LIMIT 1'
);
}
$res
=
$this
->query(
$sql
);
if
(
$res
!== false){
return
mysqli_fetch_assoc(
$res
);
}
else
{
return
false;
}
}
//取影响条数
function
affected_rows() {
return
mysqli_affected_rows(
$this
->link);
}
//从结果集中取得一行作为枚举数组
function
fetch_row(
$query
) {
return
mysqli_fetch_row(
$query
);
}
// 结果条数
function
num_rows(
$query
) {
return
mysqli_num_rows(
$query
);
}
// 取字段总数
function
num_fields(
$query
) {
return
mysqli_num_fields(
$query
);
}
// 返回查询结果
function
result(
$query
,
$row
) {
$query
= mysqli_result(
$query
,
$row
);
return
$query
;
}
//释放结果集
function
free_result(
$query
) {
return
mysqli_free_result(
$query
);
}
//返回自增ID
function
insert_id() {
return
(
$id
= mysqli_insert_id(
$this
->link)) >= 0 ?
$id
:
$this
->result(
$this
->query(
"SELECT last_insert_id()"
), 0);
}
function
close() {
return
mysqli_close(
$this
->link);
}
function
error() {
return
((
$this
->link) ? mysqli_error(
$this
->link) :
''
);
}
//返回错误信息
function
errno() {
return
intval
((
$this
->link) ? mysqli_errno(
$this
->link) :
''
);
}
function
halt(
$msg
=
''
) {
global
$charset
;
$msg
=
"<html>\n<head>\n"
;
$msg
.=
"<meta content=\"text/html; charset=$charset\" http-equiv=\"Content-Type\">\n"
;
$msg
.=
"<style type=\"text/css\">\n"
;
$msg
.=
"body,p,pre {\n"
;
$msg
.=
"font:12px Verdana;\n"
;
$msg
.=
"}\n"
;
$msg
.=
"</style>\n"
;
$msg
.=
"</head>\n"
;
$msg
.=
"<body bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#006699\" vlink=\"#5493B4\">\n"
;
$msg
.=
"<b>error</b>: "
.htmlspecialchars(
$this
->error()).
"\n<br />"
;
$msg
.=
"<b>error number</b>: "
.
$this
->errno().
"\n<br />"
;
$msg
.=
"<b>Date</b>: "
.
date
(
"Y-m-d @ H:i"
).
"\n<br />"
;
$msg
.=
"<b>Script File</b>: http://"
.
$_SERVER
[
'HTTP_HOST'
].
getenv
(
"REQUEST_URI"
).
"\n<br />"
;
$msg
.=
"</body>\n</html>"
;
echo
$msg
;
exit
;
}
}
?>
|
以上就是PHP7原生MySQL数据库操作实现代码的详细内容,更多关于php7 数据库操作方法的资料请关注我其它相关文章! 。
最后此篇关于PHP7原生MySQL数据库操作实现代码的文章就讲到这里了,如果你想了解更多关于PHP7原生MySQL数据库操作实现代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我的问题是如何在 python 中创建一个简单的数据库。我的例子是: User = { 'Name' : {'Firstname', 'Lastname'}, 'Address' : {'Street
我需要创建一个与远程数据库链接的应用程序! mysql 是最好的解决方案吗? Sqlite 是唯一的本地解决方案吗? 我使用下面的方法,我想知道它是否是最好的方法! NSString *evento
给定两台 MySQL 服务器,一台本地,一台远程。两者都有一个包含表 bohica 的数据库 foobar。本地服务器定义了用户 'myadmin'@'%' 和 'myadmin'@'localhos
我有以下灵活的搜索查询 Select {vt:code},{vt:productcode},{vw:code},{vw:productcode} from {abcd AS vt JOIN wxyz
好吧,我的电脑开始运行有点缓慢,所以我重置了 Windows,保留了我的文件。因为我的大脑还没有打开,所以我忘记事先备份我的 MySQL 数据库。我仍然拥有所有原始文件,因此我实际上仍然拥有数据库,但
如何将我的 Access 数据库 (.accdb) 转换为 SQLite 数据库 (.sqlite)? 请,任何帮助将不胜感激。 最佳答案 1)如果要转换 db 的结构,则应使用任何 DB 建模工具:
系统检查发现了一些问题: 警告:?:(mysql.W002)未为数据库连接“默认”设置 MySQL 严格模式 提示:MySQL 的严格模式通过将警告升级为错误来修复 MySQL 中的许多数据完整性问题
系统检查发现了一些问题: 警告:?:(mysql.W002)未为数据库连接“默认”设置 MySQL 严格模式 提示:MySQL 的严格模式通过将警告升级为错误来修复 MySQL 中的许多数据完整性问题
我想在相同的 phonegap 应用程序中使用 android 数据库。 更多说明: 我创建了 phonegap 应用程序,但 phonegap 应用程序不支持服务,所以我们已经在 java 中为 a
Time Tracker function clock() { var mytime = new Date(); var seconds
我需要在现有项目上实现一些事件的显示。我无法更改数据库结构。 在我的 Controller 中,我(从 ajax 请求)传递了一个时间戳,并且我需要显示之前的 8 个事件。因此,如果时间戳是(转换后)
我有一个可以收集和显示各种测量值的产品(不会详细介绍)。正如人们所期望的那样,显示部分是一个数据库+建立在其之上的网站(使用 Symfony)。 但是,我们可能还会创建一个 API 来向第三方公开数据
我们将 SQL Server 从 Azure VM 迁移到 Azure SQL 数据库。 Azure VM 为 DS2_V2、2 核、7GB RAM、最大 6400 IOPS Azure SQL 数据
我正在开发一个使用 MongoDB 数据库的程序,但我想问在通过 Java 执行 SQL 时是否可以使用内部数据库进行测试,例如 H2? 最佳答案 你可以尝试使用Testcontainers Test
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 已关闭 9 年前。 此问题似乎与 a specific programming problem, a sof
我正在尝试使用 MSI 身份验证(无需用户名和密码)从 Azure 机器学习服务连接 Azure SQL 数据库。 我正在尝试在 Azure 机器学习服务上建立机器学习模型,目的是我需要数据,这就是我
我在我的 MySQL 数据库中使用这个查询来查找 my_column 不为空的所有行: SELECT * FROM my_table WHERE my_column != ""; 不幸的是,许多行在
我有那个基地:http://sqlfiddle.com/#!2/e5a24/2这是 WordPress 默认模式的简写。我已经删除了该示例不需要的字段。 如您所见,我的结果是“类别 1”的两倍。我喜欢
我有一张这样的 table : mysql> select * from users; +--------+----------+------------+-----------+ | userid
我有表: CREATE TABLE IF NOT EXISTS `category` ( `id` int(11) NOT NULL, `name` varchar(255) NOT NULL
我是一名优秀的程序员,十分优秀!