2016-10-12 9 views
1

Ich versuche, die utm-Parameter und andere Werte in MySQL mit PHP zu speichern, aber die Werte werden nicht in der Datenbank gespeichert.Werte, die nicht im MYSQL mit PHP gespeichert werden

Ich Echo bereits jede Variablen und die Werte sind vorhanden. Was ist falsch an der Abfrage? Warum werden die Werte nicht in der Datenbank gespeichert?

Und wie man das Datum einfügt? Ich meine, ich möchte das Datum einfügen/speichern, wenn die Werte eingefügt werden.

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

führen Sie die Abfrage im Datenbankeditor und überprüfen Sie den Fehler oder die Warnung, wenn –

+1

Woher kommt $ conn? Sie können möglicherweise eine Debug-Ebene anzeigen, um festzustellen, welcher Fehler bei ELSE auftritt. z.B. $ conn-> getError(); o.ä. Sie können auch ini_set ('display_errors', 1) verwenden; error_reporting (E_ALL) für die Entwicklung ... –

+0

welches ist das Datumsfeld im obigen Code ... –

Antwort

1

In der Abfrage fehlt der Wert date_inserted. Wenn es "NOT NULL" sein muss, wird die Abfrage fehlschlagen.

Um ein Datum in DB einzufügen, empfehle ich Ihnen, diesen Link zu sehen: PHP date() format when inserting into datetime in MySQL.

folgende Also auf den Link oben, das Datum zu sparen, wenn die Werte, wo eingefügt, Sie so etwas wie dies zu tun haben werden:

// 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."' 
);"; 

Hoffnung hilft es.

+0

aber wie das Datum automatisch gespeichert wird? Ich meine, ich möchte das eingegebene Datum speichern, wenn die Werte eingefügt werden. – User014019

+0

@ User014019 Ich habe meine Antwort bearbeitet, um die aktuelle Datetime einzufügen (eigentlich die Datetime, wenn die Werte eingefügt werden). Außerdem muss das MySQL-Feld "date_inserted" vom Typ "DATETIME" sein. – JazZ

+0

es funktioniert jetzt. Vielen Dank! – User014019

Verwandte Themen