Mysql
 sql >> база данни >  >> RDS >> Mysql

Трябва ли да използвам mysql_real_escape_string, ако свързвам параметри?

Не, не е нужно сами да избягвате стойността (т.е. не, не е нужно да извиквате mysqli_real_escape_string ) , когато използвате подготвени оператори:DB машината ще направи това сама.

(Всъщност, ако се обаждате на mysql_real_escape_string и използвайки свързани параметри, вашите низове ще бъдат екранирани два пъти - което не би било чудесно:в крайна сметка ще се окажете с екраниращи символи навсякъде...)


Като странична бележка:вашите стойности се предават като цели числа (както е посочено от 'ii' ) , така че не би трябвало да се обаждате на mysql_real_escape_string , дори и да не сте използвали подготвени оператори:както показва името й, тази функция се използва за избягване на... низове.

За цели числа обикновено използвам intval за да се уверя, че данните, които инжектирам в моите SQL заявки, наистина са цели числа.

(Но тъй като използвате подготвени заявки, отново не е нужно да правите този вид бягство)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Някакъв начин да изберете от таблицата на MySQL, където полето завършва с определен знак/число?

  2. Как да върна типа поле от MySQL заявка?

  3. Не мога да инсталирам mysql2 gem

  4. ПЪЛНО ПРИСЪЕДИНЯВАНЕ към MySQL?

  5. php mysql подреждането по времева марка е неправилно