Penggunaan fungsi BACKTICKS pada PHP

Ваш запрос не может быть обработан
С данным запросом возникла проблема. Мы работаем чтобы устранить ее как можно скорее.

Зарегистрируйтесь или войдите на Facebook, чтобы продолжить.

Присоединиться

или

Вход

20Feb

PHP mendukung operator eksekusi, disebut backtick [ ` ` ]. Perlu anda perhatikan bahwa backtick bukan tanda petik tunggal, tapi karakter yang tombolnya berada di atas tombol TAB atau sebelah kiri tombol 1 di dalam keyboard anda.

PHP akan mengeksekusi perintah baris [shell command] yang ditulis di dalam backtick dan menampung hasilnya ke dalam variabel.



Hasil Program :

Dalam sistem operasi Windows, perintah dir /w digunakan untuk menampilkan daftar file dan direktori yang terdapat pada path tertentu, dalam bentuk tampilan melebar. 

Demikian pembahasan mengenai operator eksekusi pada PHP, semoga bermanfaat.

Helda HerlisaPenulis

Tidak ada deskripsi, Privasi adalah segalanya

disunting oleh [Nasrullah Siddik]

Pendahuluan

Backtick [`] pada MySQL memiliki arti khusus untuk mengapit nama semua objek seperti database, table, dan field / column.

Contoh :

Select * from `dim_produk`;

Posisi Pada Keyboard

Berikut adalah gambar layout keyboard dan posisi karakter backtick pada umumnya.


Setelah membaca beberapa jawaban dan komentar pada beberapa pertanyaan SQL di sini, dan juga mendengar bahwa seorang teman saya bekerja di tempat yang memiliki kebijakan yang melarang mereka, saya bertanya-tanya apakah ada yang salah dengan menggunakan backticks di sekitar nama field di MySQL .

Itu adalah:

SELECT `id`, `name`, `anotherfield` ...
-- vs --
SELECT id, name, anotherfield ...

Menggunakan backticks memungkinkan Anda untuk menggunakan karakter alternatif. Dalam penulisan kueri itu bukan masalah seperti itu, tetapi jika orang menganggap Anda bisa menggunakan backticks, saya akan menganggap itu memungkinkan Anda lolos dengan hal-hal konyol seperti

SELECT `id`, `my name`, `another field` , `field,with,comma` 

Yang tentu saja menghasilkan tabel dengan nama buruk. 

Jika Anda hanya singkat saya tidak melihat masalah dengan itu, Anda akan perhatikan jika Anda menjalankan permintaan Anda seperti itu

EXPLAIN EXTENDED Select foo,bar,baz 

Peringatan yang dihasilkan yang datang kembali akan memiliki centang kembali dan nama tabel yang memenuhi syarat. Jadi, jika Anda menggunakan fitur pembuatan kueri dan penulisan ulang kueri secara otomatis, backticks akan membuat apa pun yang menguraikan kode Anda menjadi kurang membingungkan. 

Namun saya pikir, alih-alih mengamanatkan apakah Anda dapat menggunakan backticks atau tidak, mereka harus memiliki standar untuk nama. Ini memecahkan lebih banyak masalah 'nyata'. 

Satu-satunya masalah dengan backticks adalah bahwa mereka tidak sesuai dengan ANSI-SQL, mis. mereka tidak bekerja di SQL Server.

Jika ada kemungkinan Anda harus mem-porting SQL Anda ke database lain, gunakan tanda kutip ganda.

Bagi saya, sangat masuk akal untuk menggunakannya setiap saat ketika berhadapan dengan nama-nama bidang.

  • Pertama, begitu Anda terbiasa, tidak ada salahnya untuk hanya menekan tombol backtick. 
  • Kedua, bagi saya, membuatnya lebih mudah untuk melihat apa sebenarnya bidang dalam permintaan Anda, dan apa kata kunci atau metode.
  • Terakhir, ini memungkinkan Anda untuk menggunakan nama bidang apa pun yang Anda inginkan saat mendesain tabel Anda. Terkadang masuk akal untuk memberi nama bidang "kunci", "pesanan", atau "nilai" ... yang semuanya memerlukan backtick saat merujuk pada bidang tersebut.

Backticks bukan bagian dari standar ANSI SQL. Dari manual mysql :

Jika ANSI_QUOTES mode SQL adalah diaktifkan, juga diizinkan mengutip pengidentifikasi dalam tanda kutip ganda

Jadi jika Anda menggunakan backticks dan kemudian memutuskan untuk menjauh dari MySQL, Anda memiliki masalah [walaupun Anda mungkin memiliki masalah yang jauh lebih besar juga]

Tidak ada yang salah jika Anda terus menggunakan MYSQL, kecuali mungkin keseruan visual dari pertanyaan. Tetapi mereka mengizinkan penggunaan kata kunci yang dipesan atau ruang yang disematkan sebagai nama tabel dan kolom. Ini adalah tidak-tidak pada kebanyakan mesin basis data dan akan mencegah migrasi apa pun di lain waktu.

Adapun untuk membaca mudah, banyak orang menggunakan huruf besar untuk kata kunci SQL, misalnya.

SELECT some_fied, some_other_field FROM whatever WHERE id IS NULL;

Jika Anda bertanya kepada saya, backticks harus selalu digunakan. Tetapi ada beberapa alasan mengapa tim lebih suka tidak menggunakannya.

Keuntungan:

  • Menggunakannya, tidak ada kata-kata yang dicadangkan atau karakter terlarang.
  • Dalam beberapa kasus, Anda mendapatkan lebih banyak pesan kesalahan deskriptif.
  • Jika Anda menghindari praktik buruk, Anda tidak peduli, tapi ... dengan kata asli, kadang-kadang itu adalah cara yang layak untuk menghindari suntikan SQL.

Kekurangan:

  • Mereka tidak standar dan biasanya tidak portabel. Namun, selama Anda tidak menggunakan backtick sebagai bagian dari pengenal [yang merupakan praktik terburuk yang dapat saya bayangkan], Anda dapat mem-porting permintaan Anda dengan secara otomatis menghapus backticks.
  • Jika beberapa permintaan Anda berasal dari Access, mereka mungkin mengutip nama tabel dengan "[dan mungkin Anda tidak bisa menghapus semua" secara membabi buta]. Namun, campuran backtick dan double quotes diperbolehkan.
  • Beberapa perangkat lunak atau fungsi bodoh memfilter pertanyaan Anda, dan memiliki masalah dengan backtick. Namun, mereka adalah bagian dari ASCII jadi ini berarti perangkat lunak/fungsi Anda sangat buruk.

Jauh lebih mudah untuk mencari basis kode Anda untuk sesuatu di backtick. Katakanlah Anda memiliki tabel bernama event. grep -r "event" * dapat mengembalikan ratusan hasil. grep -r "\`event\`" * akan mengembalikan apa pun yang mungkin merujuk ke basis data Anda. 

Yah, sejauh yang saya tahu, seluruh tujuan menggunakan backticks adalah agar Anda dapat menggunakan nama yang bertepatan dengan kata kunci yang dipesan. Jadi, jika nama tersebut tidak bertabrakan dengan kata kunci yang dipesan, saya tidak melihat alasan untuk menggunakan backticks. Tapi, itu juga bukan alasan untuk melarang mereka.

Hal Sederhana tentang backtick `` digunakan untuk menunjukkan pengidentifikasi seperti database_name, table_name dll, dan kutipan tunggal '' , kutipan ganda "" untuk string literal, sedangkan "" digunakan untuk nilai cetak apa adanya dan '' cetak penahan variabel nilai atau dalam kasus lain cetak teks miliknya.

i.e 1.-> use `model`;   
    here `model` is database name not conflict with reserve keyword 'model'
2- $age = 27;
insert into `tbl_people`[`name`,`age`,`address`] values ['Ashoka','$age',"Delhi"];

here i used both quote for all type of requirement. If anything not clear let me know..

Penggunaan utama backticks [`] dalam SQL adalah menggunakannya dalam situasi di mana Anda akan memanggil mereka lagi dalam klausa yang akan datang. Di setiap waktu lain disarankan untuk menggunakan tanda kutip ganda [""]. 

Sebagai contoh

SELECT CONCAT[Name, ' in ', city, ', ', statecode] AS `Publisher and Location`,
    COUNT[ISBN] AS "# Books",
    MAX[LENGTH[title]] AS "Longest Title",
    MIN[LENGTH[title]] AS "Shortest Title"
FROM Publisher JOIN Book
ON Publisher.PublisherID = Book.PublisherID WHERE INSTR[name, 'read']>0
GROUP BY `Publisher and Location`
HAVING COUNT[ISBN] > 1;

Dalam pernyataan di atas apakah Anda melihat bagaimana Publisher and Location digunakan lagi dalam klausa GROUP BY.

Alih-alih menggunakan 

KELOMPOK DENGAN Nama, kota, kode negara

Saya baru saja digunakan

KELOMPOK OLEH Publisher and Location

Hanya ketika situasi seperti itu muncul, berguna untuk menggunakan backticks. Di lain waktu dianjurkan menggunakan tanda kutip ganda.

jika Anda menggunakan beberapa nama bidang sebagai nilai default mysql atau mssql misalnya "status", Anda harus menggunakan backticks ["pilih status from table_name" atau "pilih id dari table_name di mana status = 1"] ..__ karena mysql kembali kesalahan atau tidak berfungsi permintaan.

Bài mới nhất

Chủ Đề