本文目录一览:
- 1、PHP使用mysqli扩展连接MySQL数据库
- 2、php中有mysqli类,是吗?$mysqli->info
- 3、php怎么用mysqli链接数据库和输出sql
- 4、PHP中mysql和mysqli的区别
- 5、thinkphp怎么使用mysqli扩展库
- 6、如何在php中扩展mysqli插件。
PHP使用mysqli扩展连接MySQL数据库
1.面向对象的使用方式
$db
=
new
mysqli('localhost',
'root',
'123456',
'dbname');
如果建立连接时未指定数据库则选择使用的数据库,切换使用的数据库
$db-select_db('dbname');
$query
=
"SELECT
*
FROM
user
WHERE
uid=4";
$result
=
$db-query($query);
$result_num
=
$result-num_rows;
$row
=
$result-fetch_assoc();
//返回一个关联数组,可以通过$row['uid']的方式取得值
$row
=
$result-fetch_row();
//返回一个列举数组,可以通过$row[0]的方式取得值
$row
=
$result-fetch_array();
//返回一个混合数组,可以通过$row['uid']和$row[0]两种方式取得值
$row
=
$result-fetch_object();
//返回一个对象,可以通过$row-uid的方式取得值
$result-free();
//释放结果集
$db-close();
//关闭一个数据库连接,这不是必要的,因为脚本执行完毕时会自动关闭连接
当进行INSERT、UPDATE、DELETE操作时,使用$db-affected_rows查看影响行数
2.面向过程的使用方式
$db
=
mysqli_connect('localhost',
'root',
'123456',
'dbname');
如果建立连接时未指定数据库则选择使用的数据库,切换使用的数据库
mysqli_select_db($db,
'dbname');
查询数据库
$query
=
"SELECT
*
FROM
user
WHERE
uid=4";
$result
=
mysqli_query($db,
$query);
$result_num
=
mysqli_num_rows($result);
返回一行结果
$row
=
mysqli_fetch_assoc($result);
//返回一个关联数组,可以通过$row['uid']的方式取得值
$row
=
mysqli_fetch_row($result);
//返回一个列举数组,可以通过$row[0]的方式取得值
$row
=
mysqli_fetch_array($result);
//返回一个混合数组,可以通过$row['uid']和$row[0]两种方式取得值
$row
=
mysqli_fetch_object($result);
//返回一个对象,可以通过$row-uid的方式取得值
断开数据库连接
mysqli_free_result($result);
//释放结果集
mysqli_close($db);
//关闭一个数据库连接,这不是必要的,因为脚本执行完毕时会自动关闭连接
当进行INSERT、UPDATE、DELETE操作时,使用mysqli_affected_rows()查看影响行数
php中有mysqli类,是吗?$mysqli->info
本文所述的是一个在PHP中以mysqli方式连接数据库的一个数据库类实例,该数据库类是从一个PHP的CMS中整理出来的,可实现PHP连接数据库类,MySQLi版,兼容PHP4,对于有针对性需要的朋友可根据此代码进行优化和修改。
?
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
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
?php
#==================================================================================================
# Filename: /db/db_mysqli.php
# Note : 连接数据库类,MySQLi版
#==================================================================================================
#[类库sql]
class db_mysqli
{
var $query_count = 0;
var $host;
var $user;
var $pass;
var $data;
var $conn;
var $result;
var $prefix = "qingga
php怎么用mysqli链接数据库和输出sql
一、mysql与mysqli的概念相关:
1、mysql与mysqli都是php方面的函数集,与
mysql数据库
关联不大。
2、在
php5
版本之前,一般是用php的
mysql函数
去驱动mysql数据库的,比如mysql_query()的函数,属于
面向过程
3、在php5版本以后,增加了mysqli的函数功能,某种意义上讲,它是mysql系统函数的增强版,更稳定更高效更安全,与mysql_query()对应的有mysqli_query(),属于面向对象,用对象的方式操作驱动mysql数据库
二、mysql与mysqli的区别:
1、mysql是非持继连接函数,mysql每次链接都会打开一个连接的进程。
2、mysqli是永远连接函数,mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销。mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。
三、mysql与mysqli的用法:
1:mysql(过程方式):
$conn
=
mysql_connect('
localhost
',
'user',
'password'); //连接mysql数据库
mysql_select_db
('data_base');
//选择数据库$result
=
mysql_query('select
*
from
data_base');//第二个可选参数,指定打开的连接$row
=
mysql_fetch_row(
$result
)
)
//只取一行数据echo
$row[0];
//输出第一个字段的值
PS:mysqli以过程式的方式操作,有些函数必须指定资源,比如mysqli_query(资源标识,
SQL语句
),并且资源标识的参数是放在前面的,而mysql_query(SQL语句,'资源标识')的资源标识是可选的,默认值是上一个打开的连接或资源。
2、mysqli(对象方式):
$conn
=
new
mysqli('localhost',
'user',
'password','data_base');//要使用new
操作符
,最后一个参数是直接指定数据库//假如构造时候不指定,那下一句需要$conn
-
select_db('data_base')实现$result
=
$conn
-
query(
'select
*
from
data_base'
);$row
=
$result
-
fetch_row();
//取一行数据echo
row[0];
//输出第一个字段的值
使用new
mysqli('localhost',
usenamer',
'password',
'databasename');会报错,提示如下:
Fatal
error:
Class
'mysqli'
not
found
in
...
一般是mysqli是没有开启的,因为mysqli类不是
默认开启
的,win下要改php.ini,去掉php_mysqli.dll前的;,linux下要把mysqli编译进去。
四、mysql_connect()与mysqli_connect()
1.使用mysqli,可以把数据库名称当作参数传给mysqli_connect()函数,也可以传递给mysqli的
构造函数
;
2.如果调用mysqli_query()或mysqli的对象查询query()方法,则连接标识是必需的。
PHP中mysql和mysqli的区别
mysql和mysqli都是php操作mysql数据库的扩展模块,mysqli可以说是mysql的升级版。
建议不要再用mysql,而采用mysqli或者pdo,php7已经完全废除了mysql
thinkphp怎么使用mysqli扩展库
这个在配置里面是可以设置的,一般是与连接数据库设置一起配置:
//数据库配置信息
'DB_TYPE' = 'mysql', // 数据库类型
'DB_HOST' = 'localhost', // 服务器地址
'DB_NAME' = 'thinkphp', // 数据库名
'DB_USER' = 'root', // 用户名
'DB_PWD' = '123456', // 密码
'DB_PORT' = 3306, // 端口
'DB_PREFIX' = 'think_', // 数据库表前缀
'DB_CHARSET'= 'utf8', // 字符集
'DB_DEBUG' = TRUE, // 数据库调试模式 开启后可以记录SQL日志
其中数据库类型可以设置为:mysqli
更多类型还有:
DB_TYPE设置
支持的 数据库类型
mysql或mysqli mysql
pgsql pgsql
sqlite sqlite
mssql 或sqlsrv sqlserver
oracle oracle
ibase ibase
mongo mongo
PDO PDO支持的所有数据库
如何在php中扩展mysqli插件。
Mysqli是php5之后才有的功能,没有开启扩展的可以打开php.ini的配置文件
查找下面的语句:;extension=php_mysqli.dll将其修改为:extension=php_mysqli.dll即可。
相对于mysql有很多新的特性和优势
(1)支持本地绑定、准备(prepare)等语法
(2)执行sql语句的错误代码
(3)同时执行多个sql
(4)另外提供了面向对象的调用接口的方法。