2012-03-31 9 views
1
<?php 
    session_start(); 
    include('function.php'); 

    site::db(); 
    $type=$_GET['type']; 
    $date=$_GET['date']; 
    $amount=$_GET['amount']; 

    switch($type) { 
    case "in_park": 
     $table = "lot_income"; 
     $col = "date,amount"; 
     $val = $date $type $amount; 
     break; 
    } 

    $sql = mysql_query("INSERT INTO $table ($col) VALUES ('$val')"); 
    if(!$sql) { 
    die(mysql_error()); 
    } 

    //header("LOCATION: dashboard.php") 
?> 

Diese Arbeit wird nicht eingefügt werden, aber unter der Annahme, im, dass ich die Variablen val zur Explosion benötigt wird, aber wie ich auch dort das Komma setzen, so kann ich in viele die Informationen setzen anderes Feld als nur ein Feld., wie mehrere Variablen in eine SQL-Abfrage

+2

Warum verwenden Menschen mysql_ *, wenn es seit Jahren bessere Alternativen gibt? Schau dir PDO oder mysqli an. Vielleicht möchten Sie auch SQL Injection lesen. – GordonM

Antwort

1

Ändern Sie diese ..

$val=$date $type $amount; 

In diese

$val= "'$date', '$amount'"; 

Und Thius

$sql=mysql_query("INSERT INTO $table ($col) VALUES ('$val')"); 

in diesem

$sql=mysql_query("INSERT INTO $table ($col) VALUES ($val)"); 
1

Ich glaube, Sie sind eine Spalte in der SQL-Anweisung fehlt:

$col = "date, type, amount"; 

Sie die SQL-Werte entsprechend formatiert werden müssen:

$val = "'$date', '$type', '$amount'"; 

verketten sie:

$sql = mysql_query("INSERT INTO $table ($col) VALUES ($val)"); 
1

ich in der Regel tun :

$table = "lot_income"; 

$data = array(
    'date' => "'".mysql_real_escape_string($date)."'", // date 
    'type' => intval($type), // integer 
    'amount' => intval($amount), // integer 
    'text' => "'".mysql_real_escape_string($sometext)."'" // string 
    // etc 
); 

// I tend to wrap the following statement in a function for code reuse 

$resource = mysql_query(
    "INSERT INTO ".$table." (".implode(", ", array_keys($data).")" 
    . "VALUES (".implode(", ", array_values($data).")" 
    ); 

Hinweis: Für Werte, die austreten (um SQL-Injektionen zu vermeiden), wäre es einfacher/sicherer, Variablen mit der PHP-Erweiterung PDO oder mysqli zu binden.