Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

apakah Setiap panggilan ke mysql_real_escape_string memerlukan perjalanan lain ke database?

Fakta bahwa ia menggunakan perpustakaan mysql tidak tidak berarti ia melakukan perjalanan pulang pergi dengan server.

Ini menjalankan kode dari perpustakaan klien mysql, dimuat dalam proses yang sama dengan juru bahasa php Anda. Anda memang memerlukan koneksi - fungsi itu perlu mengetahui beberapa pengaturan server untuk beroperasi dengan benar. Tetapi pengaturan tersebut di-cache di informasi koneksi di sisi PHP.

Jika Anda ingin memverifikasi ini (dan Anda menggunakan linux), tulis skrip sederhana seperti:

<?php
$link = mysql_connect('localhost', 'user', 'pass');
echo "Connection done\n";
echo mysql_real_escape_string("this ' is a test");
?>

Dan jalankan melalui strace :

$ strace php t.php
....            # here comes the connection to mysql, socket fd == 3
connect(3, {sa_family=AF_FILE, path="/var/run/mysqld/mysqld.sock"}, 110) = 0
fcntl(3, F_SETFL, O_RDWR)               = 0
setsockopt(3, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
....            # talking with mysql here
poll([{fd=3, events=POLLIN}], 1, 60000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "8\0\0\0\n5.1.58-log\0\3\0\0\0K-?4'fL+\0\377\367!"..., 16384) = 60
...
read(3, "\7\0\0\2\0\0\0\2\0\0\0", 16384) = 11
                # first php echo
write(1, "Connection done\n", 16Connection done    )       = 16
                # second php echo
write(1, "this \\' is a test", 17this \' is a test)      = 17
munmap(0x7f62e187a000, 528384)          = 0
....

Satu-satunya hal yang penting adalah bahwa keduanya write s disebabkan oleh echo pernyataan tidak memiliki syscall lain di antaranya - tidak ada komunikasi jaringan yang mungkin tanpa syscall (dari ruang pengguna di linux).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara melewati kolom dalam file CSV saat mengimpor ke tabel MySQL menggunakan LOAD DATA INFILE?

  2. PHP &MySQL cara terbaik untuk menghitung tampilan halaman untuk halaman dinamis

  3. Bagaimana cara mengoptimalkan pencarian waktu tanggal di Mysql?

  4. Bagaimana cara menyusun kueri SQL untuk menemukan objek yang merupakan induk dari dua objek spesifik lainnya?

  5. Setara dengan Java untuk mysql_real_escape_string() PHP