OCI8 2.0 ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·ΠΎΠ½Π΄Ρ DTrace, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ DTrace. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ PHP ΠΈ DTrace ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ°Π·Π΄Π΅Π» ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° DTrace.
ΠΠ»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ DTrace Π² PHP OCI8, ΡΠΎΠ±Π΅ΡΠΈΡΠ΅ OCI8 ΠΊΠ°ΠΊ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠΉ
ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ PHP_DTRACE.
$ export PHP_DTRACE=yes $ pecl install oci8
ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ php.ini, Π·Π°Π΄Π°Π² extension_dir ΡΠ°Π²Π½ΡΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ·Π΄Π°Π»ΡΡ oci8.so, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
extension=oci8.so
ΠΡΠ»ΠΈ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ PHP OCI8 ΠΈΠ· PECL Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ phpize
ΠΈ configure (Π²ΠΌΠ΅ΡΡΠΎ pecl), Π²Π°ΠΌ Π²ΡΠ΅
Π΅ΡΡ Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ PHP_DTRACE=yes. ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ
ΠΎΠΏΡΠΈΡ --enable-dtrace Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌ
ΡΠΊΡΠΈΠΏΡΠΎΠΌ configure ΠΌΠΎΠ΄ΡΠ»Ρ PECL.
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ PECL ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠΈΡΠ°ΠΉΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ PECL.
| ΠΠΌΡ Π·ΠΎΠ½Π΄Π° | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π·ΠΎΠ½Π΄Π° | ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ Π·ΠΎΠ½Π΄Π° |
|---|---|---|
oci8-connect-entry |
ΠΠ½ΠΈΡΠΈΠΈΡΡΠ΅ΡΡΡ oci_connect(), oci_pconnect() ΠΈ oci_new_connect(). Π‘ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ. | char *username, char *dbname, char *charset, long session_mode, int persistent, int exclusive |
oci8-connect-return |
Π‘ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. | void *connection |
oci8-check-connection |
Π‘ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ° Oracle ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΡΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. | void *connection, char *client_id, int is_open, long errcode, unsigned long server_status |
oci8-sqltext |
Π‘ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ oci_parse(). | void *connection, char *client_id, void *statement, char *sql |
oci8-connection-close |
Π‘ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΎ. | void *connection |
oci8-error |
Π‘ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ° Oracle. | int status, long errcode |
oci8-execute-mode |
Π‘ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΡΠΈ oci_execute() Π΄Π»Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ° Π·Π°ΠΏΡΡΠΊΠ°. | void *connection, char *client_id, void *statement, unsigned int mode |
ΠΡΠΈ Π·ΠΎΠ½Π΄Ρ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ² OCI8.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ connection ΠΈ statement ΡΠ²Π»ΡΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ Π½Π° Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΈ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ².
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ client_id ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ oci_set_client_identifier().
Π―Π΄ΡΠΎ PHP ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·ΠΎΠ½Π΄Ρ. Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°Π·Π΄Π΅Π» Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·ΠΎΠ½Π΄Ρ DTrace Π² ΡΠ΄ΡΠ΅ PHP.
| ΠΠΌΡ Π·ΠΎΠ½Π΄Π° |
|---|
oci8-connect-expiry |
oci8-connect-lookup |
oci8-connect-p-dtor-close |
oci8-connect-p-dtor-release |
oci8-connect-type |
oci8-sesspool-create |
oci8-sesspool-stats |
oci8-sesspool-type |
ΠΡΠΈ Π·ΠΎΠ½Π΄Ρ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΌΠΎΠ΄ΡΠ»Ρ OCI8. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ·ΡΡΠ°ΠΉΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ OCI8.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π·ΠΎΠ½Π΄ΠΎΠ², Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ PHP ΠΈ, Π·Π°ΡΠ΅ΠΌ, Π·Π°ΠΏΡΡΡΠΈΡΠ΅:
# dtrace -l
ΠΡΠ²ΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ:
ID PROVIDER MODULE FUNCTION NAME [ . . . ] 17 phpoci22116 oci8.so php_oci_dtrace_check_connection oci8-check-connection 18 phpoci22116 oci8.so php_oci_do_connect oci8-connect-entry 19 phpoci22116 oci8.so php_oci_persistent_helper oci8-connect-expiry 20 phpoci22116 oci8.so php_oci_do_connect_ex oci8-connect-lookup 21 phpoci22116 oci8.so php_oci_pconnection_list_np_dtor oci8-connect-p-dtor-close 22 phpoci22116 oci8.so php_oci_pconnection_list_np_dtor oci8-connect-p-dtor-release 23 phpoci22116 oci8.so php_oci_do_connect oci8-connect-return 24 phpoci22116 oci8.so php_oci_do_connect_ex oci8-connect-type 25 phpoci22116 oci8.so php_oci_connection_close oci8-connection-close 26 phpoci22116 oci8.so php_oci_error oci8-error 27 phpoci22116 oci8.so php_oci_statement_execute oci8-execute-mode 28 phpoci22116 oci8.so php_oci_create_spool oci8-sesspool-create 29 phpoci22116 oci8.so php_oci_create_session oci8-sesspool-stats 30 phpoci22116 oci8.so php_oci_create_session oci8-sesspool-type 31 phpoci22116 oci8.so php_oci_statement_create oci8-sqltext
Π‘ΡΠΎΠ»Π±Π΅Ρ "Provider" ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· phpoci ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°
Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° PHP.
Π‘ΡΠΎΠ»Π±Π΅Ρ "Function" ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠΌΠ΅Π½Π° Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ , Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° C, ΡΡΠ½ΠΊΡΠΈΠΉ PHP, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ (Provider).
ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ PHP Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½, ΡΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π·ΠΎΠ½Π΄ΠΎΠ² PHP ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° DTrace D.
ΠΡΠΈΠΌΠ΅Ρ #1 user_oci8_probes.d Π΄Π»Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π²ΡΠ΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·ΠΎΠ½Π΄ΠΎΠ² PHP OCI8 Ρ ΠΏΠΎΠΌΠΎΡΡΡ DTrace Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅
#!/usr/sbin/dtrace -Zs
#pragma D option quiet
php*:::oci8-connect-entry
{
printf("%lld: PHP connect-entry\n", walltimestamp);
printf(" credentials=\"%s@%s\"\n", arg0 ? copyinstr(arg0) : "", arg1 ? copyinstr(arg1) : "");
printf(" charset=\"%s\"\n", arg2 ? copyinstr(arg2) : "");
printf(" session_mode=%ld\n", (long)arg3);
printf(" persistent=%d\n", (int)arg4);
printf(" exclusive=%d\n", (int)arg5);
}
php*:::oci8-connect-return
{
printf("%lld: PHP oci8-connect-return\n", walltimestamp);
printf(" connection=0x%p\n", (void *)arg0);
}
php*:::oci8-connection-close
{
printf("%lld: PHP oci8-connect-close\n", walltimestamp);
printf(" connection=0x%p\n", (void *)arg0);
}
php*:::oci8-error
{
printf("%lld: PHP oci8-error\n", walltimestamp);
printf(" status=%d\n", (int)arg0);
printf(" errcode=%ld\n", (long)arg1);
}
php*:::oci8-check-connection
{
printf("%lld: PHP oci8-check-connection\n", walltimestamp);
printf(" connection=0x%p\n", (void *)arg0);
printf(" client_id=\"%s\"\n", arg1 ? copyinstr(arg1) : "");
printf(" is_open=%d\n", arg2);
printf(" errcode=%ld\n", (long)arg3);
printf(" server_status=%lu\n", (unsigned long)arg4);
}
php*:::oci8-sqltext
{
printf("%lld: PHP oci8-sqltext\n", walltimestamp);
printf(" connection=0x%p\n", (void *)arg0);
printf(" client_id=\"%s\"\n", arg1 ? copyinstr(arg1) : "");
printf(" statement=0x%p\n", (void *)arg2);
printf(" sql=\"%s\"\n", arg3 ? copyinstr(arg3) : "");
}
php*:::oci8-execute-mode
{
printf("%lld: PHP oci8-execute-mode\n", walltimestamp);
printf(" connection=0x%p\n", (void *)arg0);
printf(" client_id=\"%s\"\n", arg1 ? copyinstr(arg1) : "");
printf(" statement=0x%p\n", (void *)arg2);
printf(" mode=0x%x\n", arg3);
}
Π ΡΡΠΎΠΌ ΡΠΊΡΠΈΠΏΡΠ΅ Ρ dtrace ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΡ
-Z, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² PHP Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ. ΠΡΠ»ΠΈ Π½Π΅ Π·Π°Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ ΠΎΠΏΡΠΈΡ, ΡΠΎ ΡΠΊΡΠΈΠΏΡ
ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π·ΠΎΠ½Π΄Ρ Π΄Π»Ρ
ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ.
ΠΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π·ΠΎΠ½Π΄ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌ. ΠΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, Π½Π° ΠΊΠ°ΠΊΠΈΡ ΡΠ΄ΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π·ΠΎΠ½Π΄Ρ ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠΈ ΠΌΠΈΠ³ΡΠΈΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΄ΡΠ°ΠΌΠΈ. Π ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΊΠΈ Π·ΠΎΠ½Π΄ΠΎΠ².
Π‘ΠΊΡΠΈΠΏΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·ΠΎΠ½Π΄ΠΎΠ² PHP OCI8 ΡΡΠΎΠ²Π½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΡΠΊΡΠΈΠΏΡΠ° PHP. ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠΊΡΠΈΠΏΡ D:
# ./user_oci8_probes.d
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠΊΡΠΈΠΏΡ PHP ΠΈΠ»ΠΈ ΡΠ²ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. D-ΡΠΊΡΠΈΠΏΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π²ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π·ΠΎΠ½Π΄ΠΎΠ² ΠΏΡΠΈ ΠΈΡ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΊΡΠΈΠΏΡ PHP, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ:
1381794982092854582: PHP connect-entry credentials="hr@localhost/pdborcl" charset="" session_mode=0 persistent=0 exclusive=0 1381794982183158766: PHP oci8-connect-return connection=0x7f4a7907bfb8 1381794982183594576: PHP oci8-sqltext connection=0x7f4a7907bfb8 client_id="Chris" statement=0x7f4a7907c2a0 sql="select * from employees" 1381794982183783706: PHP oci8-execute-mode connection=0x7f4a7907bfb8 client_id="Chris" statement=0x7f4a7907c2a0 mode=0x20 1381794982444344390: PHP oci8-connect-close connection=0x7f4a7907bfb8
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ D-ΡΠΊΡΠΈΠΏΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΡΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΠΆΠ°ΡΠΈΡ CTRL+C.