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

Данните от PHP формата не се публикуват в mySQL

Ето пълния пример на вашия код с помощта на PDO :

$dbhost = "localhost";
$dbname = "llamabre_farms1";
$dbusername = "llamabre_visitor";
$dbpassword = "llama";

$link = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbusername,$dbpassword);

$statement = $link->prepare("
    INSERT INTO farmsdir 
    (name, owners, location, phone, email, website, description, dateadded, logo, state)
    VALUES(:fname, :sowners, :slocation, :sphone, :semail, 
    :swebsite, :sdescription, :dateadded, :logo, :state)
    ");

$statement->execute(array(
    "fname" => $_POST['name'],
    "sowners" => $_POST['owners'],
    "slocation" => $_POST['location'],
    "sphone" => $_POST['phone'],
    "semail" => $_POST['email'],
    "swebsite" => $_POST['website'],
    "sdescription" => $_POST['description'],
    "dateadded" => date('Y-m-d',strtotime($_POST['dateadded'])),
    "logo" => $_POST['logo'],
    "state" => $_POST['state'],
));

Обяснение:

Prepared statements се използва за почистване на вашия вход за предотвратяване на SQL инжектиране. Можете да използвате стойността си без единични или двойни кавички в SQL изявление за обвързване.

В Execute можете да подадете масив за вашия SQL statement със същото име на индекс.

Каква е причината да използвате PDO или mysqli_* вместо mysql_: Тъй като разширението mysql_ е отхвърлено и не е налично в PHP 7.

Странична бележка:

Знам, че @Rahautos вече предостави решението за използване на MYSQL стандартен Date Format ('Y-m-d') както използвах в моето execution .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете допълнителни данни в падащото меню за избор на django формуляр

  2. CURRENT_TIMESTAMP Примери – MySQL

  3. RSA в android произвежда правилни ключове, но грешно декриптиране

  4. #1442 – Не може да се актуализира таблица „*“ в съхранена функция/тригер, тъй като вече се използва от израз, който е извикал тази съхранена функция/тригер

  5. Какъв е каноничният начин за изтегляне на запис от MySQL база данни, която има най-малко/най-голямо поле?