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

Проблем със съвпадение на редове в базата данни с използване на PDO

Проблеми, причинени от данните

Най-вероятно във входните данни (или база данни) има някои преобразувани или непечатаеми знаци. Например може да има символ за преместване на ред или специално кодиран символ или някои знаци като < и > преобразувани в HTML обекти. В резултат на това заявката съдържа <[email protected] > никога няма да съответства на текст <[email protected] > .

Проблемът е, че това е само предположение и никой не може да ви каже какъв е действителният проблем, защото е ваш база данни, вашата входни данни и самовие може да намери проблема.

Написах статия, която обяснява как да отстраните грешки във вашите PDO проблеми .

За да отстраните конкретен проблем, трябва

  • уверете се, че пълното отчитане на грешки е активирано както за PDO, така и за PHP. Наистина помага, като ви показва случайни печатни грешки, правописни грешки и други подобни
  • разгледайте внимателно както данните в базата данни, така и входните данни, за да откриете разликата. bin2hex() функцията би помогнала, разкривайки всички непечатаеми и преобразувани знаци както в базата данни, така и във входа.

Проблеми, причинени от идентификационните данни за връзката

Друг често срещан проблем е, когато имате няколко бази данни и се свържете с грешната, която няма исканите данни. Този проблем е подобен на този , така че просто следвайте същата рутина, като проверявате не списъка с таблици, а редовете с данни.

Неуместна, но важна забележка

Отстрани, но въпреки това много важно:вашето подготвено изявление е код на cargo cult който ненищо не защитава . Ето как трябвата бъде:

$sql = 'SELECT count(*) FROM inbox WHERE uid = ? AND from_email = ?'; 
$result = $link->prepare($sql); 
$result->execute([$email_number,$email_f]); 
$number_of_rows = $result->fetchColumn(); 



  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 Trigger след актуализация само ако редът е променен

  2. Как да вмъкнете масив в един MySQL Prepared оператор с PHP и PDO

  3. Каква е разликата между обединения, разделени със запетая, и присъединяване по синтаксис в MySQL?

  4. Как да копирам данни от една таблица в друга нова таблица в MySQL?

  5. Списък на MySQL спецификаторите за формат на дата