File: mysql.xml

package info (click to toggle)
phpdoc 20020310-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 35,272 kB
  • ctags: 354
  • sloc: xml: 799,767; php: 1,395; cpp: 500; makefile: 200; sh: 140; awk: 51
file content (1643 lines) | stat: -rw-r--r-- 60,295 bytes parent folder | download
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
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
<?xml version="1.0" encoding="utf-8"?>
 <reference id="ref.mysql">
  <title>MySQL 함수</title>
  <titleabbrev>MySQL</titleabbrev>
  <partintro>
   <simpara>
    아래 함수들은 MySQL 데이터베이스 서버에 접근할 수 있게 해준다.
    이들 함수를 사용하려면 PHP를 <option role="configure">--with-mysql</option>
    인자를 사용하여 컴파일해야 한다.
    만일 위의 인자를 설치된 MySQL의 경로 없이 사용한다면,
    PHP는 내장된 클라이언트 라이브러리를 대신 사용할 것이다.
    서로 다른 어플리케이션을 이용하는 사용자들이 MySQL을
    사용하려 할 때(예를들어, PHP3와 PHP4가 동시에 apache 모듈로써 돌아가거나,
    auth-mysql일 경우) MySQL 경로를 반드시 다음과 같이 설정해야 한다:
    <option role="configure">--with-mysql=/path/to/mysql</option>.
    위 옵션은 php가 MySQL에 의해 설치된 클라이언트 라이브러리를 사용하도록
    하며, 어떠한 충돌도 피할 수 있게 해준다.
   </simpara>
   <simpara>
    MySQL에 대한 더 상세한 정보는 <ulink url="&url.mysql;">&url.mysql;</ulink>에서 얻을 수 있다.
   </simpara>
   <simpara>
    MySQL 문서는 <ulink url="&url.mysql.docs;">&url.mysql.docs;</ulink>에 있다.
   </simpara>

  </partintro>

  <refentry id="function.mysql-affected-rows">
   <refnamediv>
    <refname>mysql_affected_rows</refname> 
    <refpurpose>최근 MySQL 작업으로 처리된 행(row) 개수를 얻음</refpurpose>
   </refnamediv>
   <refsect1>
    <title>설명</title>
     <methodsynopsis>
      <type>int</type><methodname>mysql_affected_rows</methodname>
      <methodparam choice="opt"><type>int</type><parameter>
        link_identifier
       </parameter></methodparam>
     </methodsynopsis>
    <para> 
     <function>mysql_affected_rows</function>는 link identifier로
     접속되어 있는 서버에서 최근 실행된 INSERT, UPDATE, DELETE 질의로
     처리된 행의 개수를 돌려준다. 만약 link identifier 인자를
     생략하면, 최근 열려진 link를 사용한다.
    </para>
    <para>
     마지막 질의가 WHERE 절이 없는 DELETE 질의라면, 테이블의 모든 레코드가
     삭제되더라도 이 함수는 0값을 돌려준다.
    </para>
    <para>
     이 함수는 SELECT 문에는 동작하지 않으며, 레코드가 수정되는 경우에만 동작한다.
     SELECT 구문으로부터 돌려받은 줄의 개수를 얻으려면, <function>mysql_num_rows</function>를
     쓰면 된다.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.mysql-change-user">
   <refnamediv>
    <refname>mysql_change_user</refname> 
    <refpurpose>
     현 접속에서 로그인된 사용자를 변경
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>설명</title>
     <methodsynopsis>
      <type>int</type><methodname>mysql_change_user</methodname>
      <methodparam><type>string</type><parameter>user</parameter></methodparam>
      <methodparam><type>string</type><parameter>password</parameter></methodparam>
      <methodparam choice="opt"><type>string</type><parameter>
        database
       </parameter></methodparam>
      <methodparam choice="opt"><type>int</type><parameter>
        link_identifier
       </parameter></methodparam>
     </methodsynopsis>
    <para> 
     <function>mysql_change_user</function> 함수는 현재 사용중인 접속 또는
     link identifier 인자로 주어진 접속에서 로그인된 사용자를 변경한다.
     데이터베이스 이름이 지정되면, 사용자가 변경된 다음
     이 데이터베이스가 기본값으로 되며, 그렇지 않을 경우 현재 데이터베이스가 사용된다.
     변경할 사용자와 비밀번호 인증에 실패하게되면,
     현재 접속된 사용자는 접속이 그대로 유지된다.</para>
     <note><para>이 함수는 PHP 3.0.13 과 MySQL 3.23.3 이상에서만 동작한다.
    </para></note>
   </refsect1>
  </refentry>

  <refentry id="function.mysql-close">
   <refnamediv>
    <refname>mysql_close</refname>
    <refpurpose>MySQL 접속을 닫음</refpurpose>
   </refnamediv>
   <refsect1>
    <title>설명</title>
     <methodsynopsis>
      <type>int</type><methodname>mysql_close</methodname>
      <methodparam choice="opt"><type>int</type><parameter>
        link_identifier                   
       </parameter></methodparam>
     </methodsynopsis>
    <para>
     반환값: 성공하면 &true;값을 실패하면 &false;값을 반환
    </para>
    <para> <function>mysql_close</function> link identifier와 관련된
     MySQL 접속을 닫는다. <parameter>link identifier</parameter>를
     지정하지 않으면 마지막 열려진 link를 사용한다.
    </para>
    <para>
     <function>mysql_close</function>는 비영구적으로
     열려진 링크에서는 일반적으로 스크립트(script) 실행 마지막 부분에서
     자동으로 종료되기 때문에 사용할 필요가 없다.
    </para>
    <note>
     <para> 
      <function>mysql_close</function>은 <function>mysql_pconnect</function>로
      생성된 영구적으로 접속된 링크에서는 종료가 안될 것이다.
     </para>
    </note>
    <example>
     <title>MySQL close 예제</title>
     <programlisting role="php">
&lt;?php
    $link = mysql_connect ("kraemer", "marliesle", "secret")
        or die ("접속할 수 없습니다");
    print ("접속되었습니다");
    mysql_close ($link);
?>
     </programlisting>
    </example>
    <para> 
     참조: <function>mysql_connect</function>, 
     <function>mysql_pconnect</function>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.mysql-connect">
   <refnamediv>
    <refname>mysql_connect</refname>
    <refpurpose>MySQL 서버에 접속</refpurpose>
   </refnamediv>
   <refsect1>
    <title>설명</title>
     <methodsynopsis>
      <type>int</type><methodname>mysql_connect</methodname>
      <methodparam choice="opt"><type>string</type><parameter>
        server
       </parameter></methodparam>
      <methodparam choice="opt"><type>string</type><parameter>
        username
       </parameter></methodparam>
      <methodparam choice="opt"><type>string</type><parameter>
        password
       </parameter></methodparam>
     </methodsynopsis>
    <para> 
     접속에 성공하면 MySQL link identifier를, 그렇지 않으면 에러 메시지를 반환한다.
    </para>
    <para>
     <function>mysql_connect</function>을 이용하여 MySQL 서버에 접속을 할 수 있다.
     아래 나열된 기본값은 인자를 입력하지 않았을 때 대신 사용되는 값이다.
     <parameter>host:port</parameter>는 'localhost:3306'로, <parameter>username</parameter>은
     서버 프로세스(server process)의 소유자로, 그리고 <parameter>password</parameter>는
     공백 비밀번호로 대체된다.
    </para>
    <para>
     hostname은 &quot;hostname:port&quot;와 같이 포트 번호를 포함할 수 있다.
     또한 로컬호스트에서 &quot;:/path/to/socket&quot;와 같이
     소켓으로도 사용할 수 있다.
     <note>
      <para>
        &quot;:port&quot;는 PHP 3.0B4에서 추가된 기능이다.
      </para>
      <para>
       &quot;:/path/to/socket&quot;은 PHP 3.0.10에 추가된 기능이다.
      </para>
      <para>
      함수 이름 앞에 '@'를 붙임으로써 에러 메시지가 출력되지 않도록 할 수 있다.
      </para>
     </note>
    </para>
    <para>
     동일한 인수로 <function>mysql_connect</function>을 다시 호출하면,
     새로운 link가 생성되는 것이 아니라, 이미 생성된 link identifier 값을
     돌려받게 된다.
    </para>
    <para>
     link는 스크립트 종료 부분에서 자동으로 닫히지만,
     <function>mysql_close</function>을 사용하면 스크립트 끝부분이 아니더라도
     종료가 가능하다.
    </para>  
    <example>
     <title>MySQL 접속 예제</title>
     <programlisting role="php">
&lt;?php
    $link = mysql_connect ("kraemer", "marliesle", "secret")
        or die ("접속할 수 없습니다");
    print ("접속되었습니다");
    mysql_close ($link);
?>
     </programlisting>
    </example>
    <para> 참조: 
     <function>mysql_pconnect</function>, 
     <function>mysql_close</function>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.mysql-create-db">
   <refnamediv>
    <refname>mysql_create_db</refname>
    <refpurpose>MySQL 데이터베이스를 생성</refpurpose>
   </refnamediv>
   <refsect1>
    <title>설명</title>
     <methodsynopsis>
      <type>int</type><methodname>mysql_create_db</methodname>
      <methodparam><type>string</type><parameter>database name</parameter></methodparam>
      <methodparam choice="opt"><type>int</type><parameter>
        link_identifier
       </parameter></methodparam>
     </methodsynopsis>
    <para> 
     <function>mysql_create_db</function>는 link identifier로 연결된 서버에
     새로운 데이터베이스를 생성하도록 한다.
    </para>
    <example>
     <title>MySQL 데이터베이스 생성 예제</title>
     <programlisting role="php">
&lt;?php
    $link = mysql_pconnect ("kron", "jutta", "geheim")
        or die ("Could not connect");
    if (mysql_create_db ("my_db")) {
        print ("데이터베이스를 생성하였습니다\n");
    } else {
        printf ("데이터베이스 생성 에러: %s\n", mysql_error ());
    }
?>
     </programlisting>
    </example>
    <para> 
     하위 호환성을 가지는 <function>mysql_createdb</function> 함수 역시 사용 가능하다.
    </para>
    <para> 
     참조: <function>mysql_drop_db</function>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.mysql-data-seek">
   <refnamediv>
    <refname>mysql_data_seek</refname>
    <refpurpose>내부적인 결과 포인터를 이동</refpurpose>
   </refnamediv>
   <refsect1>
    <title>설명</title>
     <methodsynopsis>
      <type>int</type><methodname>mysql_data_seek</methodname>
      <methodparam><type>int</type><parameter>result_identifier</parameter></methodparam>
      <methodparam><type>int</type><parameter>row_number</parameter></methodparam>
     </methodsynopsis>
    <para> 
     반환값: 성공하면 &true;, 실패하면 &false; 반환.
    </para>
    <para> 
     <function>mysql_data_seek</function> 함수는 MySQL 결과중
     인자로 지정된 행번호를 이용하여 내부적인 행 포인터를
     이동시켜준다.
     <function>mysql_fetch_row</function>를 사용하여 행의 내용을 얻을 수 있다.
    </para>
    <para>
     <parameter>row_number</parameter>는 0부터 시작된다.
    </para>

    <example>
     <title>MySQL 데이터 검색 예제</title>
     <programlisting role="php">
&lt;?php
    $link = mysql_pconnect ("kron", "jutta", "geheim")
        or die ("접속할 수 없습니다");

    mysql_select_db ("samp_db")
        or die ("데이터베이스를 선택할 수 없습니다");

    $query = "SELECT last_name, first_name FROM friends";
    $result = mysql_query ($query)
        or die ("질의 실패");

    # fetch rows in reverse order

    for ($i = mysql_num_rows ($result) - 1; $i >=0; $i--) {
        if (!mysql_data_seek ($result, $i)) {
            printf ("%d 번 행을 검색할 수 없습니다\n", $i);
            continue;
        }

        if(!($row = mysql_fetch_object ($result)))
            continue;

        printf ("%s %s&lt;BR>\n", $row->last_name, $row->first_name);
    }

    mysql_free_result ($result);
?>
     </programlisting>
    </example>
   </refsect1>
  </refentry>

  <refentry id="function.mysql-db-name">
   <refnamediv>
    <refname>mysql_db_name</refname>
    <refpurpose>데이터 결과를 얻음</refpurpose>
   </refnamediv>
   <refsect1>
    <title>설명</title>
     <methodsynopsis>
      <type>int</type><methodname>mysql_db_name</methodname>
      <methodparam><type>int</type><parameter>result</parameter></methodparam>
      <methodparam><type>int</type><parameter>row</parameter></methodparam>
      <methodparam choice="opt"><type>mixed</type><parameter>
        field
       </parameter></methodparam>
     </methodsynopsis>
    <para> 
     <function>mysql_db_name</function>은 <function>mysql_list_dbs</function>를 실행한
      결과를 첫번째 인자로 갖는다. <parameter>row</parameter> 인자는
      첫번째 인자로부터 얻어진 결과값을 얻기위한 색인이다.
    </para>

    <para>
     만약 에러가 발생하면 &false;값을 돌려준다.
     <function>mysql_errno</function>와 <function>mysql_error</function>를
     사용하여 에러 메시지 처리를 할 수 있다.
    </para>

    <example>
     <title><function>mysql_db_name</function> 예제</title>
     <programlisting role="php">
&lt;?php 
error_reporting(E_ALL);

mysql_connect('dbhost', 'username', 'password');
$db_list = mysql_list_dbs();

$i = 0;
$cnt = mysql_num_rows($db_list);
while ($i &lt; $cnt) {
    echo mysql_db_name($db_list, $i) . "\n";
    $i++;
}
?>
     </programlisting>
    </example>

    <para>
     하위 호환성이 있는 <function>mysql_dbname</function>를 사용할 수 있으나
     현재 사용되지 않는다.
    </para>

   </refsect1>
  </refentry>

  <refentry id="function.mysql-db-query">
   <refnamediv>
    <refname>mysql_db_query</refname>
    <refpurpose>MySQL 질의문을 전송</refpurpose>
   </refnamediv>
   <refsect1>
    <title>설명</title>
     <methodsynopsis>
      <type>int</type><methodname>mysql_db_query</methodname>
      <methodparam><type>string</type><parameter>database</parameter></methodparam>
      <methodparam><type>string</type><parameter>query</parameter></methodparam>
      <methodparam choice="opt"><type>int</type><parameter>
        link_identifier
       </parameter></methodparam>
     </methodsynopsis>
    <para> 
     반환값: MySQL 질의로 발생한 result identifier값을,
     에러가 발생했을 경우 &false;를 반환.
    </para>
    <para> 
     <function>mysql_db_query</function>는 데이터베이스를 선택하고,
      동시에 질의문을 실행한다. 만약 link identifier가 지정되지 않는다면,
      함수는 MySQL 서버에서 접속된 링크를 찾을 것이며, 찾지 못할 경우에는
      인자없이 실행된 <function>mysql_connect</function>와 같이
      link를 생성하여 사용한다.
    </para>
    <para> 
     참조: <function>mysql_connect</function>.
    </para>
    <para>
     하위 호환성을 가지는 <function>mysql</function> 함수 역시 사용 가능하다.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.mysql-drop-db">
   <refnamediv>
    <refname>mysql_drop_db</refname>
    <refpurpose>MySQL 데이터베이스를 삭제</refpurpose>
   </refnamediv>
   <refsect1>
    <title>설명</title>
     <methodsynopsis>
      <type>int</type><methodname>mysql_drop_db</methodname>
      <methodparam><type>string</type><parameter>database_name</parameter></methodparam>
      <methodparam choice="opt"><type>int</type><parameter>
        link_identifier
       </parameter></methodparam>
     </methodsynopsis>
    <para> 
     반환값: 성공하면 &true;, 실패하면 &false;.
    </para>  
    <para> 
     <function>mysql_drop_db</function> attempts to drop (remove) an
     entire database from the server associated with the specified
     link identifier.
    </para>
    <para> 
     참조: <function>mysql_create_db</function>.
     하위 호환성이 있는 <function>mysql_dropdb</function> 함수 역시 사용 가능하다.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.mysql-errno">
   <refnamediv>
    <refname>mysql_errno</refname> 
    <refpurpose>최근 MySQL 작업으로 발생한 에러 번호를 반환</refpurpose>
   </refnamediv>
   <refsect1>
    <title>설명</title>
     <methodsynopsis>
      <type>int</type><methodname>mysql_errno</methodname>
      <methodparam choice="opt"><type>int</type><parameter>
        link_identifier
       </parameter></methodparam>
     </methodsynopsis>
    <para>
     최근 실행된 MySQL 함수의 에러번호를, 에러가 없을 경우 
     <literal>0</literal>값을 반환한다.
    </para>
    <para>
     한번 MySQL 데이터베이스로부터의 발생된 에러는 다시 경고 메시지를 나타내지는 않는다.
     그러나, <function>mysql_errno</function>를 사용하면 에러 코드(code)를 얻을 수 있다.
     이 함수는 최근에 실행된 MySQL 함수(<function>mysql_error</function>와
     <function>mysql_errno</function>를 제외한)로 발생된 에러 코드만 얻을 수 있다.
     그러나, 다른 MySQL 함수를 사용하기 이전에 사용해야만 한다.
     <informalexample>
      <programlisting role="php">
&lt;?php
mysql_connect("marliesle");
echo mysql_errno().": ".mysql_error()."&lt;BR>";
mysql_select_db("nonexistentdb");
echo mysql_errno().": ".mysql_error()."&lt;BR>";
$conn = mysql_query("SELECT * FROM nonexistenttable");
echo mysql_errno().": ".mysql_error()."&lt;BR>";
?>
      </programlisting>
     </informalexample>
    </para>
    <para> 
     See also: <function>mysql_error</function>
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.mysql-error">
   <refnamediv>
    <refname>mysql_error</refname>
    <refpurpose>최근 실행된 MySQL 작업으로 발생한 에러 메시지를 반환</refpurpose>
   </refnamediv>
   <refsect1>
    <title>설명</title>
     <methodsynopsis>
      <type>string</type><methodname>mysql_error</methodname>
      <methodparam choice="opt"><type>int</type><parameter>
        link_identifier
       </parameter></methodparam>
     </methodsynopsis>
    <para>
     MySQL 함수로 발생된 에러 메시지를 얻을 수 있으며,
     에러가 발생하지 않았을 경우에는 <literal>''</literal> (공백문자)를 얻을 수 있다.
    </para>
    <para>
     한번 MySQL 데이터베이스로부터의 발생된 에러는 또다시 경고 메시지를 나타내지는 않는다.
     대신, <function>mysql_error</function>를 사용하면 에러 메시지를 얻을 수 있다.
     이 함수는 최근에 실행된 MySQL 함수(<function>mysql_error</function>과
     <function>mysql_errno</function>를 제외한)로 발생된 에러 메시지를 얻을 수 있다.
     그러나 사용하기 위해서는 다른 MySQL 함수를 사용하기 이전에 사용해야 한다.
     <informalexample>
      <programlisting role="php">
&lt;?php
mysql_connect("marliesle");
echo mysql_errno().": ".mysql_error()."&lt;BR>";
mysql_select_db("nonexistentdb");
echo mysql_errno().": ".mysql_error()."&lt;BR>";
$conn = mysql_query("SELECT * FROM nonexistenttable");
echo mysql_errno().": ".mysql_error()."&lt;BR>";
?>
      </programlisting>
     </informalexample>
    </para>
    <para> 
     참조: <function>mysql_errno</function>.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.mysql-fetch-array">
   <refnamediv>
    <refname>mysql_fetch_array</refname> 
    <refpurpose>
     결과를 필드이름 색인 또는 숫자 색인으로 된 배열로 반환
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>설명</title>
     <methodsynopsis>
      <type>array</type><methodname>mysql_fetch_array</methodname>
      <methodparam><type>int</type><parameter>result</parameter></methodparam>
      <methodparam choice="opt"><type>int</type><parameter>
        result_type
       </parameter></methodparam>
     </methodsynopsis>
    <para> 
     데이터베이스 테이블로부터 가져온 행에 대응되는 배열로 돌려주고,
     더이상 가져올 행이 없을 경우 &false;를 반환한다.</para>
    <para>
     <function>mysql_fetch_array</function>는 <function>mysql_fetch_row</function>에서
     확장된 함수이다. 결과 배열에 자료가 저장되고 배열의 색인으로 번호가 사용된다.
     또한, 배열의 색인으로 테이블의 필드 이름으로도 사용할 수 있다.
    </para>
    <para>
     결과로 두 개 이상의 동일한 필드 이름을 가진 열이 있다면,
     마지막 열이 우선권을 가진다. 동일한 다른 열을 사용하기 위해서는
     색인 번호를 이용하거나 질의 문장에서 열의 별명을 주어 이용하여야 한다.
     <informalexample>
      <programlisting>
select t1.f1 as foo t2.f1 as bar from t1, t2
      </programlisting>
     </informalexample>
    </para>
    <para>
     <function>mysql_fetch_array</function>는 필드 이름으로 된 색인이 추가되지만,
     <function>mysql_fetch_row</function> 보다 느려지지는 않는다.
    </para>
    <para>
     <function>mysql_fetch_array</function>에서 두번째 옵션 인자
     <parameter>result_type</parameter>은 상수이고, MYSQL_ASSOC, MYSQL_NUM,
     MYSQL_BOTH와 같은 값을 가질 수 있다(PHP 3.0.7에 추가되었음).
    </para>
    <para>
     참조: <function>mysql_fetch_row</function>, <function>mysql_fetch_assoc</function>.
    </para>
    <example>
     <title><function>mysql_fetch_array</function></title>
     <programlisting role="php">
&lt;?php 
mysql_connect ($host, $user, $password);
$result = mysql_db_query ("database","select user_id, fullname from table");
while ($row = mysql_fetch_array ($result)) {
    echo "user_id: ".$row["user_id"]."&lt;br>\n";
    echo "user_id: ".$row[0]."&lt;br>\n";
    echo "fullname: ".$row["fullname"]."&lt;br>\n";
    echo "fullname: ".$row[1]."&lt;br>\n";
}
mysql_free_result ($result);
?>
     </programlisting>
    </example>
   </refsect1>
  </refentry>

  <refentry id="function.mysql-fetch-assoc">
   <refnamediv>
    <refname>mysql_fetch_assoc</refname> 
    <refpurpose>
     결과를 필드이름 색인으로 된 배열로 반환
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>설명</title>
     <methodsynopsis>
      <type>array</type><methodname>mysql_fetch_assoc</methodname>
      <methodparam><type>int</type><parameter>result</parameter></methodparam>
     </methodsynopsis>
    <para> 
     필드이름의 색인을 가진 배열로 돌려주고,
     가져올 행이 없을 경우 &false;값을 반환한다.</para>
    <para>
     <function>mysql_fetch_assoc</function>는
     <function>mysql_fetch_array</function>의 두번째 인자로
     MYSQL_ASSOC를 사용한 경우과 동일하게 작동한다.
     이 방식은 <function>mysql_fetch_array</function>의 본래의 동작 방법이다.
     만일 숫자 색인 방식과 필드이름 색인을 동시에 사용하려면,
     <function>mysql_fetch_array</function>를 사용하면 된다.
    </para>
    <para>
     결과로 두개 이상의 동일한 필드 이름을 가진 열(column)이 있다면,
     마지막 열이 우선권을 가진다. 동일한 다른 열을 사용하기 위해서는
     색인 번호도 추가된 <function>mysql_fetch_array</function>를
     사용해야할 것이다.
    </para>
    <para>
     <function>mysql_fetch_assoc</function>는 필드이름으로 된 색인이 추가되지만,
     <function>mysql_fetch_row</function> 보다 느려지지는 않는다.
    </para>
    <para>
     참조: <function>mysql_fetch_row</function>, <function>mysql_fetch_array</function>.
    </para>
    <example>
     <title><function>mysql_fetch_assoc</function></title>
     <programlisting role="php">
&lt;?php 
mysql_connect ($host, $user, $password);
$result = mysql_db_query ("database","select * from table");
while ($row = mysql_fetch_assoc ($result)) {
    echo $row["user_id"];
    echo $row["fullname"];
}
mysql_free_result ($result);
?>
     </programlisting>
    </example>
   </refsect1>
  </refentry>

  <refentry id="function.mysql-fetch-field">
   <refnamediv>
    <refname>mysql_fetch_field</refname>
    <refpurpose>
     결과로부터 열 정보를 얻어서 객체로 반환
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>설명</title>
     <methodsynopsis>
      <type>object</type><methodname>mysql_fetch_field</methodname>
      <methodparam><type>int</type><parameter>result</parameter></methodparam>
      <methodparam choice="opt"><type>int</type><parameter>
        field_offset
       </parameter></methodparam>
     </methodsynopsis>
    <para>
     필드 정보가 포함된 객체로 반환한다.
    </para>  
    <para>
     <function>mysql_fetch_field</function>는 특정 질의 결과로부터
     필드 정보를 얻을 목적으로 사용할 수 있다. 만일, field_offset을 지정하지 않으면,
     <function>mysql_fetch_field</function>에 의해 아직 얻지 못한 다음 필드 정보를
     얻게 된다.
    </para>
			<para>
     객체에 대한 특성은 다음과 같다.
     <itemizedlist>
					<listitem>
						<simpara>
	name - 열(column) 이름
       </simpara>
					</listitem>
					<listitem>
						<simpara>
	table - 열이 속해있는 테이블 이름
       </simpara>
					</listitem>
					<listitem>
						<simpara>
	max_length - 열의 최대 길이
       </simpara>
					</listitem>
					<listitem>
						<simpara>
	not_null - 열 값이 &null;이 아니면 1
       </simpara>
					</listitem>
					<listitem>
						<simpara>
	primary_key - 열이 primary key이면 1
       </simpara>
					</listitem>
					<listitem>
						<simpara>
	unique_key - 열이 unique key이면 1
       </simpara>
					</listitem>
					<listitem>
						<simpara>
	multiple_key - 열이 non-unique key이면 1
       </simpara>
					</listitem>
					<listitem>
						<simpara>
	numeric - 열이 숫자이면 1
       </simpara>
					</listitem>
					<listitem>
						<simpara>
	blob - 열이 BLOB이면 1
       </simpara>
					</listitem>
					<listitem>
						<simpara>
	type - 열의 타입
       </simpara>
					</listitem>
					<listitem>
						<simpara>
	unsigned - 열이 부호없음(unsigned)이면 1
       </simpara>
					</listitem>
					<listitem>
						<simpara>
	zerofill - 열이 0으로 채움(zero-filled)이면 1
       </simpara>
					</listitem>
				</itemizedlist>
			</para>
			<example>
				<title>
					<function>mysql_fetch_field</function>
				</title>
				<programlisting role="php">
&lt;?php 
mysql_connect ($host, $user, $password)
    or die ("접속할 수 없습니다");
$result = mysql_db_query ("database", "select * from table")
    or die ("질의 실패");
# get column metadata
$i = 0;
while ($i &lt; mysql_num_fields ($result)) {
    echo "Information for column $i:&lt;BR>\n";
    $meta = mysql_fetch_field ($result);
    if (!$meta) {
        echo "어떠한 정보도 없습니다.&lt;BR>\n";
    }
    echo "&lt;PRE>
blob:         $meta->blob
max_length:   $meta->max_length
multiple_key: $meta->multiple_key
name:         $meta->name
not_null:     $meta->not_null
numeric:      $meta->numeric
primary_key:  $meta->primary_key
table:        $meta->table
type:         $meta->type
unique_key:   $meta->unique_key
unsigned:     $meta->unsigned
zerofill:     $meta->zerofill
&lt;/PRE>";
    $i++;
}
mysql_free_result ($result);
?>
     </programlisting>
			</example>
			<para>
     참조: <function>mysql_field_seek</function>.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-fetch-lengths">
		<refnamediv>
			<refname>mysql_fetch_lengths</refname>
			<refpurpose>
     결과로부터 각 출력의 길이를 반환
    </refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>array</type><methodname>mysql_fetch_lengths</methodname>
					<methodparam><type>int</type><parameter>result</parameter></methodparam>
				</methodsynopsis>
			<para> 
     반환값: 최근 <function>mysql_fetch_row</function>로 얻은
     행(row)의 각 필드 길이를 배열로 얻거나, 에러 발생시에는 &false;값을
     얻는다.
    </para>
			<para>
				<function>mysql_fetch_lengths</function>는
     최근 <function>mysql_fetch_row</function>,
     <function>mysql_fetch_array</function>,
     <function>mysql_fetch_object</function>로 얻은 행으로부터
     각 열(column)의 길이를 색인값이 0으로 시작하는 배열로 저장하여 반환한다.
    </para>
			<para> 
     참조: <function>mysql_fetch_row</function>.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-fetch-object">
		<refnamediv>
			<refname>mysql_fetch_object</refname>
			<refpurpose>행(row)의 결과를 객체로 얻음</refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>object</type><methodname>mysql_fetch_object</methodname>
					<methodparam><type>int</type><parameter>result</parameter></methodparam>
					<methodparam choice="opt"><type>int</type><parameter>
							result_type
						</parameter></methodparam>
				</methodsynopsis>
			<para> 
     행(row)에 대응되는 객체로 돌려주고, 가져올 행이 없을 경우 &false;를 반환한다.
    </para>
			<para>
				<function>mysql_fetch_object</function>는
     <function>mysql_fetch_array</function>와 유사하나,
     배열 대신 객체로 얻는다는 차이점이 있다.
     다시말해, 오프셋(offset)에 의해서가 아닌 필드이름으로
     데이터를 접근할 수 있다는 것이다.
    </para>
			<para>
     두번째 인자인 <parameter>result_type</parameter>에는
     상수가 오며, MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH 값을 가질 수 있다.
    </para>
			<para>
     속도면에서, 이 함수는 <function>mysql_fetch_array</function>와 비슷하고,
     <function>mysql_fetch_row</function>만큼이나 빠르다. 그러나 큰 차이는 없다.
     <example>
					<title>
						<function>mysql_fetch_object</function> 예제</title>
					<programlisting role="php">
&lt;?php 
mysql_connect ($host, $user, $password);
$result = mysql_db_query ("database", "select * from table");
while ($row = mysql_fetch_object ($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
mysql_free_result ($result);
?>
      </programlisting>
				</example>
			</para>
			<para> 
     See also: <function>mysql_fetch_array</function> and
     <function>mysql_fetch_row</function>.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-fetch-row">
		<refnamediv>
			<refname>mysql_fetch_row</refname>
			<refpurpose>결과를 숫자색인으로 된 배열로 반환</refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>array</type><methodname>mysql_fetch_row</methodname>
					<methodparam><type>int</type><parameter>result</parameter></methodparam>
				</methodsynopsis>
			<para> 
     반환값: 행(row)에 대응되는 객체로 돌려주고, 가져올 값이 없을 경우 &false;를 반환한다.
    </para>
			<para>
				<function>mysql_fetch_row</function>는 특정 result identifier로부터
     한 행의 데이터를 가져오며, 배열로 얻을 수 있다. 각 결과 열(column)은
     0부터 시작하는 숫자색인으로 저장된다.
    </para>
			<para>
     <function>mysql_fetch_row</function>를 실행하면, 다음 행 데이터를 돌려주며,
     가져올 행이 없을 경우 &false;를 반환한다.
    </para>
			<para>
     참조: <function>mysql_fetch_array</function>,
     <function>mysql_fetch_object</function>,
     <function>mysql_data_seek</function>,
     <function>mysql_fetch_lengths</function>,
     <function>mysql_result</function>.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-field-flags">
		<refnamediv>
			<refname>mysql_field_flags</refname>
			<refpurpose>
     결과로부터 특정 필드(field)의 상태정보(flag)를 반환
    </refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>string</type><methodname>mysql_field_flags</methodname>
					<methodparam><type>int</type><parameter>result</parameter></methodparam>
					<methodparam><type>int</type><parameter>field_offset</parameter></methodparam>
				</methodsynopsis>
			<para>
				<function>mysql_field_flags</function>은 특정 필드의 상태정보를 반환한다.
     상태정보는 한개의 공백으로 구분된 단일 단어로 출력되며,
     이 값은 <function>explode</function>에 의해 나눠서 볼 수 있다.
    </para>
			<para>
     사용중인 MySQL 버전이 "not_null", "primary_key",
     "unique_key", "multiple_key", "blob", "unsigned", "zerofill",
     "binary", "enum", "auto_increment", "timestamp"를 지원한다면,
     필드 상태정보에 따라 위의 단어들이 출력될 것이다.
    </para>
			<para> 
     하위 호환성이 있는 <function>mysql_fieldflags</function>도 사용 가능하다.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-field-name">
		<refnamediv>
			<refname>mysql_field_name</refname>
			<refpurpose>
     결과로부터 특정 필드 이름을 반환
    </refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>string</type><methodname>mysql_field_name</methodname>
					<methodparam><type>int</type><parameter>result</parameter></methodparam>
					<methodparam><type>int</type><parameter>field_index</parameter></methodparam>
				</methodsynopsis>
			<para>
				<function>mysql_field_name</function>은 특정 필드 색인값을 얻는다.
     <parameter>result</parameter>는 result identifier는 유효한 결과값이어야 하고,
     <parameter>field_index</parameter>는 필드의 숫자 오프셋(offset)이어야 한다.
    </para>
			<note>
				<para>
					<parameter>field_index</parameter>는 0부터 시작하는 값이다.
     </para>
				<para>
      예를들어, 세번째 필드의 색인은 2이고, 네번째 필드의 색인은 3이 된다.
     </para>
			</note>
			<para>
				<example>
					<title>
						<function>mysql_field_name</function> example</title>
					<programlisting role="php">
// 테이블이 세개의 필드로 아래와 같이 세개의 필드로 이루어져 있을 때: 
//   user_id
//   username
//   password.

$res = mysql_db_query("users", "select * from users", $link);

echo mysql_field_name($res, 0) . "\n";
echo mysql_field_name($res, 2);
      </programlisting>
				</example>
			</para>
			<para>
     위의 예제는 아래와 같이 출력될 것이다:
     <informalexample>
					<programlisting>
user_id
password
      </programlisting>
				</informalexample>
			</para>
			<para>
     하위 호환성이 있는 <function>mysql_fieldname</function>도 사용 가능하다.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-field-len">
		<refnamediv>
			<refname>mysql_field_len</refname>
			<refpurpose>
     특정 필드의 길이를 반환
    </refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>int</type><methodname>mysql_field_len</methodname>
					<methodparam><type>int</type><parameter>result</parameter></methodparam>
					<methodparam><type>int</type><parameter>field_offset</parameter></methodparam>
				</methodsynopsis>
			<para>
				<function>mysql_field_len</function>은 특정 필드의 길이를 얻는다.
    </para>
			<para>
     하위 호환성이 있는 <function>mysql_fieldlen</function>도 사용 가능하다.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-field-seek">
		<refnamediv>
			<refname>mysql_field_seek</refname>
			<refpurpose>
     특정 필드의 오프셋(offset)으로 위치(pointer)를 이동
    </refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>int</type><methodname>mysql_field_seek</methodname>
					<methodparam><type>int</type><parameter>result</parameter></methodparam>
					<methodparam><type>int</type><parameter>field_offset</parameter></methodparam>
				</methodsynopsis>
			<para>
     특정 필드 오프셋을 검색하는데 사용된다.
     <function>mysql_fetch_field</function>을 실행하면서 필드 오프셋을 설정하지 않으면,
     <function>mysql_field_seek</function>이 돌려준 값으로 지정된다.
    </para>
			<para>
     참조: <function>mysql_fetch_field</function>.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-field-table">
		<refnamediv>
			<refname>mysql_field_table</refname>
			<refpurpose>
     특정 필드가 속한 테이블 이름을 얻음
    </refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>string</type><methodname>mysql_field_table</methodname>
					<methodparam><type>int</type><parameter>result</parameter></methodparam>
					<methodparam><type>int</type><parameter>field_offset</parameter></methodparam>
				</methodsynopsis>
			<para> 
     특정 필드가 속한 테이블 이름을 얻는다.
    </para>
			<para>
     하위 호환성이 있는 <function>mysql_fieldtable</function>도 사용 가능하다.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-field-type">
		<refnamediv>
			<refname>mysql_field_type</refname>
			<refpurpose>
     결과로부터 특정 필드의 데이터 형(type) 정보를 반환
    </refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>string</type><methodname>mysql_field_type</methodname>
					<methodparam><type>int</type><parameter>result</parameter></methodparam>
					<methodparam><type>int</type><parameter>field_offset</parameter></methodparam>
				</methodsynopsis>
			<para>
				<function>mysql_field_type</function>는
        <function>mysql_field_name</function> 함수와
        사용자에게 돌려주는 값의 형태에서는 비슷하다.
        그러나, 필드타입은 "int", "real", "string", "blob" 등과 같은
        단어로 반환한다는 것이 다르다. 필드타입의 더 자세한 종류를 보려면
        <ulink url="&url.mysql.docs;">MySQL 문서</ulink>를 보면 된다.
     <example>
					<title>mysql field types</title>
					<programlisting role="php">
&lt;?php 

mysql_connect ("localhost:3306");
mysql_select_db ("wisconsin");
$result = mysql_query ("SELECT * FROM onek");
$fields = mysql_num_fields ($result);
$rows   = mysql_num_rows ($result);
$i = 0;
$table = mysql_field_table ($result, $i);
echo "Your '".$table."' table has ".$fields." fields and ".$rows." records &lt;BR>";
echo "The table has the following fields &lt;BR>"; 
while ($i &lt; $fields) {
    $type  = mysql_field_type  ($result, $i);
    $name  = mysql_field_name  ($result, $i);
    $len   = mysql_field_len   ($result, $i);
    $flags = mysql_field_flags ($result, $i);
    echo $type." ".$name." ".$len." ".$flags."&lt;BR>";
    $i++;
}
mysql_close();

?>
      </programlisting>
				</example>
			</para>
			<para> 
     하위 호환성이 있는 <function>mysql_fieldtype</function>도 사용 가능하다.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-free-result">
		<refnamediv>
			<refname>mysql_free_result</refname>
			<refpurpose>Free result memory</refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>int</type><methodname>mysql_free_result</methodname>
					<methodparam><type>int</type><parameter>result</parameter></methodparam>
				</methodsynopsis>
			<para>
				<function>mysql_free_result</function>는
<parameter>result</parameter>에 대한 메모리(memory)에 있는
내용을 모두 제거한다.
    </para>
			<para>
				<function>mysql_free_result</function>는 결과로부터 얻은 질의 값이
커서 많은 메모리를 사용할 염려가 있을 때 사용된다.
단, 결과 값은 스크립트(script) 실행부가 종료되면서 메모리에서 자동적으로 지워진다.
    </para>
			<para>
     <function>mysql_freeresult</function>와는 하위 호환성이 있다.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-insert-id">
		<refnamediv>
			<refname>mysql_insert_id</refname>
			<refpurpose>
     최근 INSERT 작업으로부터 생성된 identifier 값을 반환
    </refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>int</type><methodname>mysql_insert_id</methodname>
					<methodparam choice="opt"><type>int</type><parameter>
							link_identifier
						</parameter></methodparam>
				</methodsynopsis>
			<para>
				<function>mysql_insert_id</function>는
         <parameter>link_identifier</parameter>를 사용하면, INSERT 질의로 행(row)를 추가한 뒤
         AUTO_INCREMENT로 생성된 테이블의 컬럼에 추가된 값을 얻을 수 있다. 
         <parameter>link_identifier</parameter>를 지정하지 않으면, 마지막에 열려진 link를
         사용한다.
    </para>
			<para>
		<function>mysql_insert_id</function>는 이전 질의가 AUTO_INCREMENT값으로
     생성되지 않으면, 0을 반환한다.
     마지막으로 저장된 값이 필요하다면, 질의로 값을 추가한 직후 mysql_insert_id()를 사용하면 된다.
    </para>
			<note>
				<para>
      <literal>LAST_INSERT_ID()</literal>는 
AUTO_INCREMENT 값으로 생성된 가장 최근 값이 보관되며, 질의할 동안에는 없어지지 않는다.
    </para>
			</note>
			<warning>
				<para>
					<function>mysql_insert_id</function>는 MySQL C API 내장 함수인
      <literal>mysql_insert_id()</literal>로부터 <literal>long</literal> 타입으로 변환한다.
      만일, AUTO_INCREMENT 열(column)의 타입이 BIGINT라면,
			<function>mysql_insert_id</function>은 부정확한 값을 반환할 것이다. 그대신, 내부 MySQL 함수인
			<literal>LAST_INSERT_ID()</literal>를 사용하면 된다.
     </para>
			</warning>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-list-dbs">
		<refnamediv>
			<refname>mysql_list_dbs</refname>
			<refpurpose>
     MySQL 서버에 있는 데이터베이스 이름을 반환
    </refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>int</type><methodname>mysql_list_dbs</methodname>
					<methodparam choice="opt"><type>int</type><parameter>
							link_identifier
						</parameter></methodparam>
				</methodsynopsis>
			<para>
			<function>mysql_list_dbs</function>는 현재 MySQL 데몬(daemon)으로부터
      사용가능한 데이터베이스를 포함한 결과 포인터로 반환할 것이다.
			이 결과 포인터를 사용하여 <function>mysql_tablename</function> 함수도 사용할 수 있다.
    </para>
			<para>
				<example>
					<title>
						<function>mysql_list_dbs</function> 예제</title>
					<programlisting role="php">
$link = mysql_connect('localhost', 'myname', 'secret');
$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list)) {
  echo $row->Database . "\n";
}
      </programlisting>
				</example>
			</para>
			<para>
			예제의 결과는 아래와 같다:
     <informalexample>
					<programlisting>
database1
database2
database3
...
      </programlisting>
				</informalexample>
			</para>
			<note>
				<para>
      위 코드는 <function>mysql_fetch_row</function>나 이와 유사한 함수를 사용할 수도 있다.
     </para>
			</note>
			<para>
     하위 호환성이 있는 <function>mysql_listdbs</function>도 사용 가능하다.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-list-fields">
		<refnamediv>
			<refname>mysql_list_fields</refname>
			<refpurpose>MySQL 결과의 필드 리스트로 반환</refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>int</type><methodname>mysql_list_fields</methodname>
					<methodparam><type>string</type><parameter>database_name</parameter></methodparam>
					<methodparam><type>string</type><parameter>table_name</parameter></methodparam>
					<methodparam choice="opt"><type>int</type><parameter>
							link_identifier
						</parameter></methodparam>
				</methodsynopsis>
			<para>
				<function>mysql_list_fields</function>는 주어진 테이블 이름으로부터 정보를 가져온다.
     이 함수는 데이터베이스 이름과 테이블 이름을 인수(argument)로 갖는다.
     그리고 이 함수는 <function>mysql_field_flags</function>,
     <function>mysql_field_len</function>,
     <function>mysql_field_name</function>,
     <function>mysql_field_type</function> 등을 사용할 수 있도록
     결과 포인터를 반환한다.
    </para>
			<para>
     결과 identifier는 양의 정수이며, 에러가 발생하면 -1 값이 반환된다.
     에러 메시지는 <literal>$phperrmsg</literal>에 저장될 것이며,
     <literal>@mysql()</literal>과 같이 호출하지 않는한 항상 화면에
     에러 메시지가 출력될 것이다.
    </para>
			<para>
				<example>
					<title>
						<function>mysql_list_fields</function> 예제</title>
					<programlisting role="php">
$link = mysql_connect('localhost', 'myname', 'secret');

$fields = mysql_list_fields("database1", "table1", $link);
$columns = mysql_num_fields($fields);

for ($i = 0; $i &lt; $columns; $i++) {
  echo mysql_field_name($fields, $i) . "\n";;
}
      </programlisting>
				</example>
			</para>
			<para>
     위의 예제는 다음과 같이 출력될 것이다:
     <informalexample>
					<programlisting>
field1
field2
field3
...
      </programlisting>
				</informalexample>
			</para>
			<para>
     하위 호환성이 있는 <function>mysql_listfields</function>도 사용 가능하다.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-list-tables">
		<refnamediv>
			<refname>mysql_list_tables</refname>
			<refpurpose>MySQL 데이터베이스에 있는 테이블 목록을 반환</refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>int</type><methodname>mysql_list_tables</methodname>
					<methodparam><type>string</type><parameter>database</parameter></methodparam>
					<methodparam choice="opt"><type>int</type><parameter>
							link_identifier
						</parameter></methodparam>
				</methodsynopsis>
			<para>
				<function>mysql_list_tables</function> 지정된 데이터베이스 이름으로
결과값을 얻고 <function>mysql_db_query</function>등의 함수에 사용되는 결과 포인터를 반환한다.
<function>mysql_tablename</function> 함수는 결과 포인터로부터 실제 테이블 이름을 추출하는데 사용한다.
    </para>
			<para>
하위 호환성을 가지는 <function>mysql_listtables</function> 함수 역시 사용 가능하다.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-num-fields">
		<refnamediv>
			<refname>mysql_num_fields</refname>
			<refpurpose>결과로부터 필드 개수를 반환</refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>int</type><methodname>mysql_num_fields</methodname>
					<methodparam><type>int</type><parameter>result</parameter></methodparam>
				</methodsynopsis>
			<para>
				<function>mysql_num_fields</function> 함수는 결과셋으로부터 필드 개수를 반환한다.
    </para>
			<para> 
     참조: 
     <function>mysql_db_query</function>,
     <function>mysql_query</function>,
     <function>mysql_fetch_field</function>,
     <function>mysql_num_rows</function>.</para>
			<para>
하위 호환성을 가지는 <function>mysql_numfields</function> 함수 역시 사용 가능하다.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-num-rows">
		<refnamediv>
			<refname>mysql_num_rows</refname>
			<refpurpose>결과로부터 열 개수를 반환</refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>int</type><methodname>mysql_num_rows</methodname>
					<methodparam><type>int</type><parameter>result</parameter></methodparam>
				</methodsynopsis>
			<para>
				<function>mysql_num_rows</function> 함수는 결과셋으로부터 열의 개수를 반환한다.
이 함수는 SELECT절에서 반환된 결과셋만 사용이 가능하다.
INSERT, UPDATE, DELETE로부터 열의 개수를 얻으려면 <function>mysql_affected_rows</function>를 사용하면 된다.
     <example>
					<title>
						<function>
        mysql_num_rows 예제 (crubel@trilizio.org 제공)
       </function>
					</title>
					<programlisting role="php">
&lt;?php
$conn = mysql_connect("hostaddress", "username", "password"); 
mysql_select_db("database",$conn); // needed if you have m,ultiple db's
$Resultfornummembers = mysql_query("SELECT * FROM Accounts",$conn); 
$NumMembers = mysql_num_rows($Resultfornummembers); 
echo "$NumMembers Members";
?>                          
      </programlisting>
				</example>
			</para>
			<para>
     참조:  
     <function>mysql_db_query</function>, 
     <function>mysql_query</function> and, 
     <function>mysql_fetch_row</function>.
    </para>
			<para>
하위 호환성을 가지는 <function>mysql_numrows</function> 함수 역시 사용 가능하다.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-pconnect">
		<refnamediv>
			<refname>mysql_pconnect</refname>
			<refpurpose>
			MySQL 서버와 영구적인 데이터베이스 접속
    </refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>int</type><methodname>mysql_pconnect</methodname>
					<methodparam choice="opt"><type>string</type><parameter>
							hostname
						</parameter></methodparam>
					<methodparam choice="opt"><type>string</type><parameter>
							username
						</parameter></methodparam>
					<methodparam choice="opt"><type>string</type><parameter>
							password
						</parameter></methodparam>
				</methodsynopsis>
			<para> 
			반환값: 접속에 성공하면 MySQL 영구적 link identifier를 반환, 실패하면 에러를 출력.
    </para>
			<para>
				<function>mysql_pconnect</function>는 MySQL 서버로부터 접속을 설정하는 함수이다.
다음 기본 설정값은 옵션 파라미터를 설정하지 않으면 사용된다: <parameter>host:port</parameter> =
     'localhost:3306', <parameter>username</parameter> = 서버 프로세서 소유자, 
     <parameter>password</parameter> = 공백 비밀번호.
    </para>
			<para>
호스트명은 포트 번호를 포함 가능하다. &quot;hostname:port&quot;나 &quot;:/path/to/socket&quot;와
 같이 로컬호스트의 소켓 경로 형태로 사용이 가능하다.
     <note>
					<para>
&quot;:port&quot;는 3.0B4 버전부터 사용이 가능하다.
      </para>
					<para>
&quot;:/path/to/socket&quot;는 3.0.10 버전부터 사용이 가능하다.
      </para>
				</note>
			</para>
			<para>
				<function>mysql_pconnect</function>은 <function>mysql_connect</function>과 크게 두가지 부분에서 다르다.
    </para>
			<para> 
첫째, 접속할 때, 함수는 동일한 호스트와 사용자이름, 비밀번호로 이미 열려진 영구적 접속된 링크가 있는지 찾아본다.
만일 찾게되면, 새로은 접속을 여는 대신 찾은 링크의 identifier를 반환한다.
    </para>
			<para> 
둘째, SQL 서버로 접속은 스크립트 실행이 끝나도 계속 유지가 되며, 이후에도 사용이 가능하다.
(주의: <function>mysql_pconnect</function>로 열려진 링크는 <function>mysql_close</function> 함수로 닫지는 못한다.)
    </para>
			<para> 
그러므로, 이 형태의 링크를 '영구적(persistent)'으로 부른다.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-query">
		<refnamediv>
			<refname>mysql_query</refname>
			<refpurpose>Send a MySQL query</refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>int</type><methodname>mysql_query</methodname>
					<methodparam><type>string</type><parameter>query</parameter></methodparam>
					<methodparam choice="opt"><type>int</type><parameter>
							link_identifier
						</parameter></methodparam>
				</methodsynopsis>
			<para>
				<function>mysql_query</function>는 현재 서버에서 동작중인 데이터베이스로부터
 특정 link identifier로 질의를 전송한다.
만일, <parameter>link_identifier</parameter>를 설정하지 않으면 가장 최근에 열려진 link를 사용하게 된다.
열려진 link가 없으면, 옵션 인자 없이 실행된 <function>mysql_connect</function> 함수처럼
link를 생성하여 사용한다.
    </para>
			<note>
				<para>
질의에 쓰이는 문자열 마지막에 세미콜론(;)를 붙이면 안된다.
     </para>
			</note>
			<para>
				<function>mysql_query</function> 함수는 질의 성공 여부에 따라 &true;(0이 아닌값) 또는 &false;를 반환한다.
서버로부터 실행된 질의가 실행되고 그 질의 내용에 문제가 없어야만, &true;값을 반환한다.
이 반환 값은 질의에 해당하는 열 개수 등과는 관련이 없다.
    </para>
			<para>
다음 질의는 틀린 문장이기 때문에 <function>mysql_query</function>는 실패하며, &false;값을 반환한다:
     <example>
					<title>
						<function>mysql_query</function>
					</title>
					<programlisting role="php">
&lt;?php
$result = mysql_query ("SELECT * WHERE 1=1")
    or die ("잘못된 질의를 실행했습니다!!");
?>
      </programlisting>
				</example>
			</para>
			<para>
     다음 질의는 문법은 맞지만 실제로 테이블 <literal>my_tbl</literal>에
     행 <literal>my_col</literal>이 없기 때문에
     <function>mysql_query</function> 함수는 실패하며, &false;값을 반환한다:
     <example>
					<title>
						<function>mysql_query</function>
					</title>
					<programlisting role="php">
&lt;?php
$result = mysql_query ("SELECT my_col FROM my_tbl")
    or die ("잘못된 질의를 실행했습니다!!");
?>
      </programlisting>
				</example>
			</para>
			<para>
				<function>mysql_query</function>는 질의로 참조되는 테이블에 대한 접근 권한이 없다면 실패하며, &false;값을 반환한다.
    </para>
			<para>
질의가 성공하면 <function>mysql_num_rows</function> 함수를 사용하여 SELECT문으로 반환되는 행의 개수를 얻을 수 있으며,
<function>mysql_affected_rows</function> 함수를 사용하면, DELETE, INSERT, REPLACE, UPDATE로 적용된 행의 개수를 얻을 수 있다.
    </para>
			<para>
SELECT문을 위해 <function>mysql_query</function> 함수는 
<function>mysql_result</function> 함수에서 사용할 수 있는 새로운 result identifier를 반환한다.
결과셋을 사용한 후, <function>mysql_free_result</function> 함수를 사용하여 메모리에서 제거할 수 있다.
그러나, 스크립트가 종료되는 시점에 자동적으로 메모리에서 제거가 된다.
    </para>
			<para>
     참조: <function>mysql_affected_rows</function>,
     <function>mysql_db_query</function>,
     <function>mysql_free_result</function>,
     <function>mysql_result</function>,
     <function>mysql_select_db</function>,
     <function>mysql_connect</function>.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-result">
		<refnamediv>
			<refname>mysql_result</refname>
			<refpurpose>결과 데이터를 반환</refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>mixed</type><methodname>mysql_result</methodname>
					<methodparam><type>int</type><parameter>result</parameter></methodparam>
					<methodparam><type>int</type><parameter>row</parameter></methodparam>
					<methodparam choice="opt"><type>mixed</type><parameter>
							field
						</parameter></methodparam>
				</methodsynopsis>
			<para>
				<function>mysql_result</function> 함수는 MySQL 결과셋으로부터 한개의 셀(cell) 내용을 반환한다.
field 인로는 필드 offset 또는 필드이름, 테이블이름과 필드이름 사이에 점(테이블이름.필드이름)으로 연결된 인자를 사용할 수 있다.
만약, 열(column)이름이 별명('select foo as bar from...')으로 되어 있다면 열이름 대신 별명(alias)를 사용해야한다.
    </para>
			<para>
큰 결과셋으로 작업할 경우, 전체 행을 얻어오는 함수중 하나를 사용하는 것이 좋을 것이다.
이 함수들은 한 번의 함수 호출로 다중 셀의 내용을 얻을 수 있는 장점이 있으며,
<function>mysql_result</function> 함수보다 더 빠르다.
또한 필드 인자로 숫자 offset을 사용하면 필드이름 또는 테이블이름.필드이름 인자를 사용한 것보다 더 빠르다.
    </para>
			<para>
			<function>mysql_result</function> 함수를 사용하면서 결과셋을 다른 함수에서 함께 사용할 수 없다.
    </para>
			<para>
성능 향상을 위해 
     <function>mysql_fetch_row</function>, 
     <function>mysql_fetch_array</function>, 
     <function>mysql_fetch_object</function> 함수를 사용하는 것이 좋다.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-select-db">
		<refnamediv>
			<refname>mysql_select_db</refname>
			<refpurpose>MySQL 데이터베이스를 선택</refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>int</type><methodname>mysql_select_db</methodname>
					<methodparam><type>string</type><parameter>database_name</parameter></methodparam>
					<methodparam choice="opt"><type>int</type><parameter>
							link_identifier
						</parameter></methodparam>
				</methodsynopsis>
			<para> 
			반환값: 성공하면 &true;값, 실패하면 에러발생.
    </para>
			<para>
				<function>mysql_select_db</function> 함수는 link identifier로 지정된 연결을 이용하여
				사용가능한 데이터베이스를 선택한다.
				link identifier를 지정하지 않으면 최근 열려진 link를 사용한다.
				만약 열려진 link가 없다면, 
				<function>mysql_connect</function>를 호출하면
				<function>mysql_connect</function> 함수가 호출되며 link를 생성하며, 이를 사용한다.
    </para>
			<para>
     Every subsequent call to <function>mysql_query</function> will be made on the active database.
    </para>
			<para>참조:
     <function>mysql_connect</function>, 
     <function>mysql_pconnect</function>, 
     <function>mysql_query</function>.
    </para>
			<para>
     하위 호환성을 가지는 <function>mysql_selectdb</function> 함수 역시 사용 가능하다.
    </para>
		</refsect1>
	</refentry>
	<refentry id="function.mysql-tablename">
		<refnamediv>
			<refname>mysql_tablename</refname>
			<refpurpose>필드의 테이블이름을 얻음</refpurpose>
		</refnamediv>
		<refsect1>
			<title>설명</title>
				<methodsynopsis>
					<type>string</type><methodname>mysql_tablename</methodname>
					<methodparam><type>int</type><parameter>result</parameter></methodparam>
					<methodparam><type>int</type><parameter>i</parameter></methodparam>
				</methodsynopsis>
			<para>
				<function>mysql_tablename</function> 함수는 인자로 
<function>mysql_list_tables</function> 함수로 반환되는 결과 포인터와 동시에 
테이블이름을 반환하고 정수형 인덱스를 가진다.
<function>mysql_num_rows</function> 함수는 결과 포인터에서 테이블 개수를 얻는데 사용된다.
     <example>
					<title>
						<function>mysql_tablename</function> 예제</title>
					<programlisting role="php">
&lt;?php 
mysql_connect ("localhost:3306");
$result = mysql_list_tables ("wisconsin");
$i = 0;
while ($i &lt; mysql_num_rows ($result)) {
    $tb_names[$i] = mysql_tablename ($result, $i);
    echo $tb_names[$i] . "&lt;BR>";
    $i++;
}
?>
      </programlisting>
				</example>
			</para>
		</refsect1>
	</refentry>
</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->