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

Вземете потребителски коментар от Mysql с помощта на Php

Използвате единични кавички във вашия оператор за вмъкване:

$sth3 = $pdo3->prepare('
    INSERT INTO Comment (info, pID, cID)
    VALUES($comm, $pID3, $cID)
');

С тези прости кавички, $comm няма да се оценяват -- и литерала $comm низ ще бъде изпратен до базата данни -- което ще доведе до нещо, което вероятно не очаквате съвсем.


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

Но тъй като се опитвате да използвате подготвени изявления, това не трябва да правите , всъщност.

Вместо това трябва да използвате заместители в израза -- и след това ги обвържете с вашите данни, когато изпълнявате оператора.


Вашата prepare би изглеждало малко по този начин, предполагам :

$sth3 = $pdo3->prepare('
    INSERT INTO Comment (info, pID, cID)
    VALUES(:comm, :pID3, :cID)
');

Обърнете внимание на :comm , :pID3 и :cID контейнери.

И след това, когато изпълнявате оператора, вие всъщност ще подадете някои реални данни, които да съответстват на контейнерите:

$sth3->execute(array(':comm' => $comm,':pID3' => $pID3,':cID' => $cID,));


Допълнителна забележка:тъй като използвате подготвени изрази, не е необходимо да използвате mysql_real_escape_string() (което не е функция, свързана със PDO, BTW, и трябва да се използва само при работа с mysql_* функции) :бягството се обработва от самия подготвен механизъм на изявление.



  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. Можете ли да увеличите max_allowed_packet от клиента?

  3. Добавяне на изображение към blob (mysql) чрез c#

  4. MySQL - Как да съединя две таблици без дубликати?

  5. Преобразуване на низ в mySql тип DECIMAL