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では一重引用符または二重引用符なしで値を使用できます 拘束力のある声明。

    ExecuteSQL statementの配列を渡すことができる関数 同じインデックス名で。

    mysql_ の代わりにPDOまたはmysqli_*を使用する理由は何ですか: mysql_拡張機能は非推奨であり、PHP7では使用できないためです。

    サイドノート:

    @RahautosがMYSQLを使用するためのソリューションをすでに提供していることを私は知っています 標準のDate Format ('Y-m-d') executionで使用したように 。



    1. Node.jsを使用してHTMLテーブルにmysqlを表示します

    2. MySQL WHERE:どのように書くか!=または等しくない?

    3. Oracle PL / SLQ関数でカーソルを返しましたが、すべての行が返されるわけではありません。 Oracle pl / sql関数で1行しか返すことができませんか?

    4. 重複せずにテーブルから別のテーブルにレコードを挿入する方法