Mysql
 sql >> Base de données >  >> RDS >> Mysql

Les données du formulaire PHP ne sont pas publiées sur mySQL

Voici l'exemple complet de votre code en utilisant 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'],
));

Explication :

Prepared statements est utilisé pour nettoyer votre entrée pour empêcher SQL injection.Vous pouvez utiliser votre valeur sans guillemet simple ou double en SQL déclaration pour la liaison.

Dans Execute fonction, vous pouvez passer un tableau pour votre SQL statement avec le même nom d'index.

Quelle est la raison d'utiliser PDO ou mysqli_* au lieu de mysql_ : Parce que l'extension mysql_ est obsolète et n'est pas disponible dans PHP 7.

Remarque :

Je sais que @Rahautos a déjà fourni la solution pour utiliser MYSQL Date Format standard ('Y-m-d') comme je l'ai utilisé dans mon execution .