Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Dados do formulário PHP não estão postando no mySQL


Aqui está o exemplo completo do seu código usando 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'],
));

Explicação:

Prepared statements é usado para limpar sua entrada para evitar SQL injeção.Você pode usar seu valor sem aspas simples ou duplas em SQL declaração para vinculação.

Em Execute função você pode passar um array para sua SQL statement com o mesmo nome de índice.

Qual ​​é a razão para usar PDO ou mysqli_* em vez de mysql_: Como a extensão mysql_ está obsoleta e não está disponível no PHP 7.

Observação:

Eu sei que @Rahautos já forneceu a solução para usar MYSQL padrão Date Format ('Y-m-d') como eu usei na minha execution .