2016-10-12 21 views
1

PHPを使用してmysqlにutmパラメータやその他の値を保存しようとしていますが、値はデータベースに保存されません。PHPを使用してMYSQLに値が保存されない

私はすでに各変数をエコーし​​ており、値は存在しています。クエリの何が問題なのですか?値がデータベースに保存されないのはなぜですか?

日付の挿入方法は?つまり、値を挿入するときに日付を挿入/保存したいのです。

if(isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] != ""){ 
    $customer_fname = isset($_POST['customer_fname']) ? $_POST['customer_fname'] : ''; 
    $customer_sname = isset($_POST['customer_sname']) ? $_POST['customer_sname'] : ''; 
    $customer_email = isset($_POST['customer_email']) ? $_POST['customer_email'] : ''; 
    $customer_mobile = isset($_POST['customer_mobile']) ? $_POST['customer_mobile'] : ''; 
    $utm_source = isset($_GET['utm_source']) ? $_GET['utm_source'] : ''; 
    $utm_medium = isset($_GET['utm_medium']) ? $_GET['utm_medium'] : ''; 
    $utm_campaign = isset($_GET['utm_campaign']) ? $_GET['utm_campaign'] : ''; 
    $utm_content = isset($_GET['utm_content']) ? $_GET['utm_content'] : ''; 
    $referer_url = $_SERVER['HTTP_REFERER']; 
    $base_url = preg_replace('/\?.*/', '', $_SERVER['HTTP_REFERER']); 

    $sql = "INSERT INTO utm_param(customer_fname,customer_sname, 
                customer_email,customer_mobile, 
                utm_source,utm_medium, 
                utm_campaign,utm_content, 
                referer_url,base_url,date_inserted) 
      VALUES('".$conn->real_escape_string($customer_fname)."', 
        '".$conn->real_escape_string($customer_sname)."', 
        '".$conn->real_escape_string($customer_email)."', 
        '".$conn->real_escape_string($customer_mobile)."', 
        '".$conn->real_escape_string($utm_source)."', 
        '".$conn->real_escape_string($utm_medium)."', 
        '".$conn->real_escape_string($utm_campaign)."', 
        '".$conn->real_escape_string($utm_content)."', 
        '".$conn->real_escape_string($referer_url)."', 
        '".$conn->real_escape_string($base_url)."')"; 

    $result = $conn->query($sql); 

    if($result){ 
     echo "row inserted\n"; 
    } else { 
     echo '<br/>aaa'; 
    } 
} 
+0

データベースエディタでクエリを実行し、エラーまたは警告がある場合は確認してください –

+1

$ connはどこから来ますか?デバッグレベルを上げて、ELSEでどのようなエラーが発生しているかを確認することができます。例えば$ conn-> getError();または類似。 ini_set( 'display_errors'、1)を使用することもできます。 ... –

+0

上記のコードの日付フィールドはどれですか... –

答えて

1

クエリでは、date_insertedの値が不足しています。 "NOT NULL"でなければならない場合、クエリは失敗します。

DBに日付を挿入するには、PHP date() format when inserting into datetime in MySQLというリンクを表示することをおすすめします。

だから、挿入されたところの値は、あなたがこのような何かを行う必要があるでしょうときの日付を保存するために、上記のリンクを次

// set the value 
$date_inserted = date("Y-m-d H:i:s"); 

//insert the values 
$sql = "INSERT INTO utm_param(
    customer_fname, 
    customer_sname, 
    customer_email, 
    customer_mobile, 
    utm_source, 
    utm_medium, 
    utm_campaign, 
    utm_content, 
    referer_url, 
    base_url, 
    date_inserted 
) VALUES(
    '".$conn->real_escape_string($customer_fname)."', 
    '".$conn->real_escape_string($customer_sname)."', 
    '".$conn->real_escape_string($customer_email)."', 
    '".$conn->real_escape_string($customer_mobile)."', 
    '".$conn->real_escape_string($utm_source)."', 
    '".$conn->real_escape_string($utm_medium)."', 
    '".$conn->real_escape_string($utm_campaign)."', 
    '".$conn->real_escape_string($utm_content)."', 
    '".$conn->real_escape_string($referer_url)."', 
    '".$conn->real_escape_string($base_url)."', 
    '".$date_inserted."' 
);"; 

はそれがお役に立てば幸いです。

+0

のカラムにデフォルト値を設定しますが、自動的に挿入される日付を保存する方法は?つまり、値が挿入されたときに挿入された日付を保存します。 – User014019

+0

@ User014019現在の日時(実際には値が挿入されている日時)を挿入するために私の回答を編集しました。また、 'date_inserted' MySQLフィールドは" DATETIME "型でなければなりません。 – JazZ

+0

これは現在動作しています。ありがとう! – User014019

関連する問題