PDOΪºÎÎï
POD£¨PHP Data Object£©À©Õ¹ÔÚPHP5ÖмÓÈ룬PHP6Öн«Ä¬ÈÏʶÓÃPDOÁ¬½ÓÊý¾Ý¿â£¬ËùÓзÇPDOÀ©Õ¹½«»áÔÚPHP6±»´ÓÀ©Õ¹ÖÐÒÆ³ý¡£¸ÃÀ©Õ¹ÌṩPHPÄÚÖÃÀà PDOÀ´¶ÔÊý¾Ý¿â½øÐзÃÎÊ£¬²»Í¬Êý¾Ý¿âʹÓÃÏàͬµÄ·½·¨Ãû£¬½â¾öÊý¾Ý¿âÁ¬½Ó²»Í³Ò»µÄÎÊÌâ¡£
ÎÒÊÇÅäÖÃÔÚwindowsÏÂ×ö¿ª·¢Óõġ£
PDOµÄÄ¿±ê
ÌṩһÖÖÇáÐÍ¡¢ÇåÎú¡¢·½±ãµÄ API
ͳһ¸÷ÖÖ²»Í¬ RDBMS ¿âµÄ¹²ÓÐÌØÐÔ£¬µ«²»Åųý¸ü¸ß¼¶µÄÌØÐÔ¡£
ͨ¹ý PHP ½Å±¾Ìṩ¿ÉÑ¡µÄ½Ï´ó³Ì¶ÈµÄ³éÏó/¼æÈÝÐÔ¡£
PDOµÄÌØµã£º
ÐÔÄÜ¡£PDO ´ÓÒ»¿ªÊ¼¾ÍÎüÈ¡ÁËÏÖÓÐÊý¾Ý¿âÀ©Õ¹³É¹¦ºÍʧ°ÜµÄ¾Ñé½Ìѵ¡£ÒòΪ PDO µÄ´úÂëÊÇȫеģ¬ËùÒÔÎÒÃÇÓлú»áÖØÐ¿ªÊ¼Éè¼ÆÐÔÄÜ£¬ÒÔÀûÓà PHP 5 µÄ×îÐÂÌØÐÔ¡£
ÄÜÁ¦¡£PDO Ö¼ÔÚ½«³£¼ûµÄÊý¾Ý¿â¹¦ÄÜ×÷Ϊ»ù´¡Ìṩ£¬Í¬Ê±Ìṩ¶ÔÓÚ RDBMS ¶ÀÌØ¹¦Äܵķ½±ã·ÃÎÊ¡£
¼òµ¥¡£PDO Ö¼ÔÚʹÄúÄܹ»ÇáËÉʹÓÃÊý¾Ý¿â¡£API ²»»áÇ¿ÐнéÈëÄúµÄ´úÂ룬ͬʱ»áÇå³þµØ±íÃ÷ÿ¸öº¯Êýµ÷ÓõĹý³Ì¡£
ÔËÐÐʱ¿ÉÀ©Õ¹¡£PDO À©Õ¹ÊÇÄ£¿é»¯µÄ£¬Ê¹ÄúÄܹ»ÔÚÔËÐÐʱΪÄúµÄÊý¾Ý¿âºó¶Ë¼ÓÔØÇý¶¯³ÌÐò£¬¶ø²»±ØÖØÐ±àÒë»òÖØÐ°²×°Õû¸ö PHP ³ÌÐò¡£ÀýÈ磬PDO_OCI À©Õ¹»áÌæ´ú PDO À©Õ¹ÊµÏÖ Oracle Êý¾Ý¿â API¡£»¹ÓÐһЩÓÃÓÚ MySQL¡¢PostgreSQL¡¢ODBC ºÍ Firebird µÄÇý¶¯³ÌÐò£¬¸ü¶àµÄÇý¶¯³Ì ......
PDOΪºÎÎï
POD£¨PHP Data Object£©À©Õ¹ÔÚPHP5ÖмÓÈ룬PHP6Öн«Ä¬ÈÏʶÓÃPDOÁ¬½ÓÊý¾Ý¿â£¬ËùÓзÇPDOÀ©Õ¹½«»áÔÚPHP6±»´ÓÀ©Õ¹ÖÐÒÆ³ý¡£¸ÃÀ©Õ¹ÌṩPHPÄÚÖÃÀà PDOÀ´¶ÔÊý¾Ý¿â½øÐзÃÎÊ£¬²»Í¬Êý¾Ý¿âʹÓÃÏàͬµÄ·½·¨Ãû£¬½â¾öÊý¾Ý¿âÁ¬½Ó²»Í³Ò»µÄÎÊÌâ¡£
ÎÒÊÇÅäÖÃÔÚwindowsÏÂ×ö¿ª·¢Óõġ£
PDOµÄÄ¿±ê
ÌṩһÖÖÇáÐÍ¡¢ÇåÎú¡¢·½±ãµÄ API
ͳһ¸÷ÖÖ²»Í¬ RDBMS ¿âµÄ¹²ÓÐÌØÐÔ£¬µ«²»Åųý¸ü¸ß¼¶µÄÌØÐÔ¡£
ͨ¹ý PHP ½Å±¾Ìṩ¿ÉÑ¡µÄ½Ï´ó³Ì¶ÈµÄ³éÏó/¼æÈÝÐÔ¡£
PDOµÄÌØµã£º
ÐÔÄÜ¡£PDO ´ÓÒ»¿ªÊ¼¾ÍÎüÈ¡ÁËÏÖÓÐÊý¾Ý¿âÀ©Õ¹³É¹¦ºÍʧ°ÜµÄ¾Ñé½Ìѵ¡£ÒòΪ PDO µÄ´úÂëÊÇȫеģ¬ËùÒÔÎÒÃÇÓлú»áÖØÐ¿ªÊ¼Éè¼ÆÐÔÄÜ£¬ÒÔÀûÓà PHP 5 µÄ×îÐÂÌØÐÔ¡£
ÄÜÁ¦¡£PDO Ö¼ÔÚ½«³£¼ûµÄÊý¾Ý¿â¹¦ÄÜ×÷Ϊ»ù´¡Ìṩ£¬Í¬Ê±Ìṩ¶ÔÓÚ RDBMS ¶ÀÌØ¹¦Äܵķ½±ã·ÃÎÊ¡£
¼òµ¥¡£PDO Ö¼ÔÚʹÄúÄܹ»ÇáËÉʹÓÃÊý¾Ý¿â¡£API ²»»áÇ¿ÐнéÈëÄúµÄ´úÂ룬ͬʱ»áÇå³þµØ±íÃ÷ÿ¸öº¯Êýµ÷ÓõĹý³Ì¡£
ÔËÐÐʱ¿ÉÀ©Õ¹¡£PDO À©Õ¹ÊÇÄ£¿é»¯µÄ£¬Ê¹ÄúÄܹ»ÔÚÔËÐÐʱΪÄúµÄÊý¾Ý¿âºó¶Ë¼ÓÔØÇý¶¯³ÌÐò£¬¶ø²»±ØÖØÐ±àÒë»òÖØÐ°²×°Õû¸ö PHP ³ÌÐò¡£ÀýÈ磬PDO_OCI À©Õ¹»áÌæ´ú PDO À©Õ¹ÊµÏÖ Oracle Êý¾Ý¿â API¡£»¹ÓÐһЩÓÃÓÚ MySQL¡¢PostgreSQL¡¢ODBC ºÍ Firebird µÄÇý¶¯³ÌÐò£¬¸ü¶àµÄÇý¶¯³Ì ......
±¾²»ÏëдÕâÐ©ÍæÒâ¶ù£¬ÆäʵÎÒ²¢²»Ï²»¶ËüÃÇ£¬Ö»²»¹ýû°ì·¨£¬Ë½ÐÎÒÊÇ¿¿ÕâЩ¼Ò»ïºý¿ÚµÄÄØ£¡
Èô¸ÉÄêǰ£¬ÎÒ×ÔÈÏΪºÜϲ»¶Linux£»Èô¸ÉÄêºó£¬ÎÒ·¢ÏÖÎÒµ±³õÊǺεȵÄÌìÕæ¡£
¶÷£¬Ò»·ÖÇ®£¬Ò»·Ö»õ£¡ÎÒ¼áÐÅÕâÒ»µã£¡ËùÒÔÎÒÏÖÔÚ¼á³ÖÓÃMSµÄVista£¬Õý°æµÄŶ£¡
ÑÔ¹éÕý´«£¬Ç°¶Îʱ¼äÒòΪ¹¤×÷£¬ÐèÒªÔÚLinuxϲÙ×÷Êó±ê£¬µ±È»À²£¬¿Ï¶¨²»»áÊÇÔÚX-windowϲÙ×÷£¬ÄÇÑùµÄ»°Ò²¾Í²»»áÓÐÕâÆªÎÄÕµĴæÔÚÁË¡£ÎÒÒª×öµÄ¾ÍÊÇÔÚConsoleÏÂÃæµÃµ½Êó±êµÄ×ø±ê¡£°Ù¶È¡¢¹È¸è¶¼ÓÃÉÏÁË£¬¿É¾ÍÊÇÕÒ²»µ½Ïà¹ØµÄ×ÊÁÏ¡£ÎÞÄÎ֮ϣ¬Ö»ÄÜÄÃÆðLinuxµÄÄں˿дúÂëÁË¡£ÏÂÃæÊÇÕâ¶Îʱ¼äµÄ³É¹û£º
1. ¹ØÓÚ"/dev/input/mice"
ÏàÐźܶàÈ˶¼ÓùýLinux£¬Ò²ÐíÄã·¢ÏÖ²»¹ÜÊÇÔÚX-windowÏÂÃæ£¬»¹ÊÇÔÚConsoleÏÂÃæ£¬Êó±ê¶¼ÊÇ¿ÉÒÔ²Ù×÷µÄ¡£ÄÇôÄãÓÐûÓп¼ÂǹýÕâЩÊó±ê¶¼ÊÇ´ÓÄÄÀ´µÄ£¿
²»´í£¡ËûÃǶ¼ÊÇ´Ó"/dev/input/mice"Õâ¸öÎļþÀïÀ´µÄ¡£Èç¹ûÄã¶ÔLinux±È½ÏÊ죬ÄÇôÄã¿Ï¶¨¿´µÃ³öÀ´ÕâÊÇÒ»¸öÉ豸Îļþ¡£"mice"¾ÍÊÇLinuxÏÂÃæÊó±êµÄÉ豸Îļþ£¬²»¹ÜÄãÓõÄÊÇPS2µÄ»¹ÊÇUSBµÄ£¬ËùÓйØÓÚÊó±êµÄ²Ù×÷¶¼±»³éÏóµ½"mice"Õâ¸öÎļþÖС£
2. "mice"֮ĸ
"mice"֮ĸÊÇË£¿female mouse? µ±È»²»ÊÇ£¡ÔÚlinuxÏÂÃæ£¬ËýÊÇ"mousedev.c"Õâ¸öÎļþ¡£Äã¿ÉÒÔÔÚÄں˵Ä"Drivers/input"Ä ......
GCC Ö§³ÖÁËÐí¶à²»Í¬µÄÓïÑÔ£¬°üÀ¨ C¡¢C++¡¢Ada¡¢Fortran¡¢Objective C,Perl¡¢Python ºÍ Ruby£¬ÉõÖÁ»¹ÓÐJava¡£
¡¡¡¡Linux Äں˺ÍÐí¶àÆäËû×ÔÓÉÈí¼þÒÔ¼°¿ª·ÅÔ´ÂëÓ¦ÓóÌÐò¶¼ÊÇÓà C ÓïÑÔ±àд²¢Ê¹Óà GCC ±àÒëµÄ¡£
¡¡¡¡±àÒëC++³ÌÐò£º
¡¡¡¡-c Ö»±àÒë²»Á¬½Ó
¡¡¡¡g++ file1 -c -o file1.o
¡¡¡¡g++ file2 -c -o file2.o
¡¡¡¡g++ file1.o file.o -o exec
¡¡¡¡g++ -c a.cpp ±àÒë
¡¡¡¡g++ -o a a.o Éú³É¿ÉÖ´ÐÐÎļþ
¡¡¡¡Ò²¿ÉÒÔ g++ -o a a.cppÖ±½ÓÉú³É¿ÉÖ´ÐÐÎļþ¡£
¡¡¡¡1. ±àÒëµ¥¸öÔ´Îļþ
¡¡¡¡ÎªÁ˽øÐвâÊÔ£¬Äã¿ÉÒÔ´´½¨“Hello World”³ÌÐò£º
¡¡¡¡#include <stdio.h>
¡¡¡¡#include <stdlib.h>
¡¡¡¡int main(int argc, char **argv)
¡¡¡¡{
¡¡¡¡printf(“Hello world!\n”);
¡¡¡¡exit(0);
¡¡¡¡}
¡¡¡¡Ê¹ÓÃÈçÏÂÃüÁî±àÒë²¢²âÊÔÕâ¸ö´úÂ룺
¡¡¡¡# gcc -o hello hello.c
¡¡¡¡# ./hello
¡¡¡¡Hello wordl!
¡¡¡¡ÔÚĬÈÏÇé¿öϲúÉúµÄ¿ÉÖ´ÐгÌÐòÃûΪa.out£¬µ«Äãͨ³£¿ÉÒÔͨ¹ý gcc µÄ“-o”Ñ¡ÏîÀ´Ö¸ ......
GCC Ö§³ÖÁËÐí¶à²»Í¬µÄÓïÑÔ£¬°üÀ¨ C¡¢C++¡¢Ada¡¢Fortran¡¢Objective C,Perl¡¢Python ºÍ Ruby£¬ÉõÖÁ»¹ÓÐJava¡£
¡¡¡¡Linux Äں˺ÍÐí¶àÆäËû×ÔÓÉÈí¼þÒÔ¼°¿ª·ÅÔ´ÂëÓ¦ÓóÌÐò¶¼ÊÇÓà C ÓïÑÔ±àд²¢Ê¹Óà GCC ±àÒëµÄ¡£
¡¡¡¡±àÒëC++³ÌÐò£º
¡¡¡¡-c Ö»±àÒë²»Á¬½Ó
¡¡¡¡g++ file1 -c -o file1.o
¡¡¡¡g++ file2 -c -o file2.o
¡¡¡¡g++ file1.o file.o -o exec
¡¡¡¡g++ -c a.cpp ±àÒë
¡¡¡¡g++ -o a a.o Éú³É¿ÉÖ´ÐÐÎļþ
¡¡¡¡Ò²¿ÉÒÔ g++ -o a a.cppÖ±½ÓÉú³É¿ÉÖ´ÐÐÎļþ¡£
¡¡¡¡1. ±àÒëµ¥¸öÔ´Îļþ
¡¡¡¡ÎªÁ˽øÐвâÊÔ£¬Äã¿ÉÒÔ´´½¨“Hello World”³ÌÐò£º
¡¡¡¡#include <stdio.h>
¡¡¡¡#include <stdlib.h>
¡¡¡¡int main(int argc, char **argv)
¡¡¡¡{
¡¡¡¡printf(“Hello world!\n”);
¡¡¡¡exit(0);
¡¡¡¡}
¡¡¡¡Ê¹ÓÃÈçÏÂÃüÁî±àÒë²¢²âÊÔÕâ¸ö´úÂ룺
¡¡¡¡# gcc -o hello hello.c
¡¡¡¡# ./hello
¡¡¡¡Hello wordl!
¡¡¡¡ÔÚĬÈÏÇé¿öϲúÉúµÄ¿ÉÖ´ÐгÌÐòÃûΪa.out£¬µ«Äãͨ³£¿ÉÒÔͨ¹ý gcc µÄ“-o”Ñ¡ÏîÀ´Ö¸ ......
ÔÚLinuxϽøÐÐCÓïÑÔ
±à³Ì£¬±ØÈ»Òª²ÉÓÃGNU GCCÀ´±àÒëCÔ´´úÂëÉú³É¿ÉÖ´ÐгÌÐò¡£
Ò»¡¢GCC¿ìËÙ
ÈëÃÅ
GccÖ¸ÁîµÄÒ»°ã¸ñʽΪ£ºGcc [Ñ¡Ïî] Òª±àÒëµÄÎļþ [Ñ¡Ïî] [Ä¿±êÎļþ]
ÆäÖУ¬Ä¿±êÎļþ¿Éȱʡ£¬GccĬÈÏÉú³É¿ÉÖ´ÐеÄÎļþÃûΪ£º±àÒëÎļþ.out
ÎÒÃÇÀ´¿´Ò»Ï¾µä
ÈëÃųÌÐò"Hello World£¡"
# vi hello.c
#include <stdlib.h>
#include <stdio.h>
void main(void)
{
printf("hello world!\r\n");
}
ÓÃgcc±àÒë³ÉÖ´ÐгÌÐò¡£
#gcc hello.c
¸ÃÃüÁhello.cÖ±½ÓÉú³É×îÖÕ¶þ½øÖÆ¿ÉÖ´ÐгÌÐòa.out
ÕâÌõÃüÁîÒþº¬Ö´ÐÐÁË£¨1£©Ô¤´¦Àí¡¢£¨2£©»ã±à¡¢(3)±àÒë²¢(4)Á´½ÓÐγÉ×îÖյĶþ½øÖÆ¿ÉÖ´ÐгÌÐò¡£ÕâÀïδָ¶¨Êä³öÎļþ£¬Ä¬ÈÏÊä³öΪa.out¡£
ÈçºÎÒªÖ¸¶¨×îÖÕ¶þ½øÖÆ¿ÉÖ´ÐгÌÐòÃû£¬ÄÇôÓÃ-oÑ¡ÏîÀ´Ö¸¶¨Ãû³Æ¡£±ÈÈçÐèÒªÉú³ÉÖ´ÐгÌÐòhello.exe
ÄÇô
#gcc hello.c -o hello.exe
¶þ¡¢GCCµÄÃüÁîÆÊÎö--ËIJ½×ß
´ÓÉÏÃæÎÒÃÇÖªµÀGCC±àÒëÔ´´úÂëÉú³É×îÖÕ¿ÉÖ´ÐеĶþ½øÖƳÌÐò£¬GCCºǫ́Òþº¬Ö´ÐÐÁËËĸö½×¶Î²½Öè¡£
GCC±àÒëCÔ´ÂëÓÐËĸö²½Ö裺
Ô¤´¦Àí-----> ±àÒë ----> »ã±à ----> Á´½Ó
ÏÖÔÚÎÒÃǾÍÓÃGCCµÄÃüÁîÑ¡ÏîÀ´Öð¸öÆÊÎöGCC¹ý³Ì¡£
1£©Ô¤´¦Àí(Pre-processin ......
2)±àÒë½×¶Î
(Compiling)
µÚ¶þ²½½øÐеÄÊDZàÒë½×¶Î£¬ÔÚÕâ¸ö½×¶ÎÖУ¬GccÊ×ÏÈÒª¼ì²é´úÂëµÄ¹æ·¶ÐÔ¡¢ÊÇ·ñÓÐÓï·¨´íÎóµÈ£¬ÒÔÈ·¶¨´úÂëµÄʵ¼ÊÒª×öµÄ¹¤×÷£¬ÔÚ¼ì²éÎÞÎóºó£¬Gcc°Ñ´úÂë·Òë³É»ã±àÓïÑÔ¡£Óû§¿ÉÒÔʹÓÔ-S”Ñ¡ÏîÀ´½øÐв鿴£¬¸ÃÑ¡ÏîÖ»½øÐбàÒë¶ø²»½øÐлã±à£¬Éú³É»ã±à´úÂë¡£
Ñ¡Ïî -S
Ó÷¨£º[root]# gcc –S hello.i –o hello.s
×÷Ó㺽«Ô¤´¦ÀíÊä³öÎļþhello.i»ã±à³Éhello.sÎļþ¡£
[root@richard hello-gcc]# ls
hello.c hello.i hello.s
ÈçÏÂΪhello.s»ã±à´úÂë
[root@richard hello-gcc]# vi hello.s
.file "hello.c"
.section .rodata
.LC0:
.string "hello world!\r\n"
.text
.globl main
.type main,@function
main:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
andl $-16, %esp
movl $0, %eax
subl %eax, %esp
subl $12, %esp
pushl $.LC0
call printf
addl $16, ......
4£©Á´½Ó½×¶Î
(Link)
Ôڳɹ¦±àÒëÖ®ºó£¬¾Í½øÈëÁËÁ´½Ó½×¶Î¡£
ÎÞÑ¡ÏîÁ´½Ó
Ó÷¨£º[root]# gcc hello.o –o hello.exe
×÷Ó㺽«±àÒëÊä³öÎļþhello.oÁ´½Ó³É×îÖÕ¿ÉÖ´ÐÐÎļþhello.exe¡£
[root]# ls
hello.c hello.exe hello.i hello.o hello.s
ÔËÐиÿÉÖ´ÐÐÎļþ£¬³öÏÖÕýÈ·µÄ½á¹ûÈçÏ¡£
[root@localhost Gcc]# ./hello
Hello World!
ÔÚÕâÀïÉæ¼°µ½Ò»¸öÖØÒªµÄ¸ÅÄº¯Êý¿â¡£
¶ÁÕß¿ÉÒÔÖØÐ²鿴Õâ¸öС³ÌÐò£¬ÔÚÕâ¸ö³ÌÐòÖв¢Ã»Óж¨Òå”printf”µÄº¯ÊýʵÏÖ£¬ÇÒÔÚÔ¤±àÒëÖаüº¬½øµÄ”stdio.h”ÖÐÒ²Ö»Óиú¯ÊýµÄÉùÃ÷£¬
¶øÃ»Óж¨Ò庯ÊýµÄʵÏÖ£¬ÄÇô£¬ÊÇÔÚÄÄÀïʵÏÖ”printf”º¯ÊýµÄÄØ£¿×îºóµÄ´ð°¸ÊÇ£ºÏµÍ³°ÑÕâЩº¯ÊýʵÏÖ¶¼±»×öµ½ÃûΪlibc.so.6µÄ¿âÎļþÖÐÈ¥ÁË£¬
ÔÚûÓÐÌØ±ðÖ¸¶¨Ê±£¬gcc»áµ½ÏµÍ³Ä¬ÈϵÄËÑË÷·¾¶”/usr/lib”ϽøÐвéÕÒ£¬Ò²¾ÍÊÇÁ´½Óµ½libc.so.6¿âº¯ÊýÖÐÈ¥£¬ÕâÑù¾ÍÄÜʵÏÖº¯
Êý”printf” ÁË£¬¶øÕâÒ²¾ÍÊÇÁ´½ÓµÄ×÷Óá£
Äã¿ÉÒÔÓÃlddÃüÁî²é¿´¶¯Ì¬¿â¼ÓÔØÇé¿ö£º
[root]# ldd hello.exe
libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x ......