2016-05-26 17 views
0

Ich habe versucht, Daten in mysql Tabelle mit einigen wo Bedingung. Aber es macht einige Fehler, die istEinfügen Abfrage mit WHERE-Bedingung in Mysql

error on queryYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE 

ich folgende Abfrage versucht haben,

if(isset($_POST['submit'])){ 
    $type=$_POST['leave_type']; 
    $division=$_POST['division']; 
    $number_of_date=$_POST['number_of_date']; 

    $resul=mysql_query("SELECT * from employee where (division='$division' || division='all_dpt')") or die("query error".mysql_error()); 
    $result3 = mysql_fetch_array($resul); 
    $emp_division=$result3['division']; 
    $id=$result3['emp_id']; 
    $annual_additional=$result3['annual_additional']; 

    $value=$annual_additional+$number_of_date; 

    if(($division==$emp_division || $division='all_dpt') && $type='Annual'){ 
     $result1=mysql_query("INSERT INTO employee (annual_additional) VALUES ('$value') WHERE emp_id='$id'")or die("error on query".mysql_error()); 
    }} 

Wie kann ich es beheben, bitte helfen!

+2

Warum brauchen Sie 'Einfügen ... Wo', Verwenden Sie' Update .... Wo' –

+1

Überprüfen Sie ein Beispiel: [mysql-insert-where-query] (http://stackoverflow.com/questions/485039/mysql -insert-where-query) –

+1

Insert-Anweisungen haben keine Where-Klausel. Was versuchst du zu machen? – Joni

Antwort

1

WICHTIGER HINWEIS: mysql_query in PHP veraltet wurde 5.5.0, und es wurde in PHP 7.0.0 entfernt. Stattdessen sollte die Erweiterung MySQLi oder PDO_MySQL verwendet werden. Siehe auch MySQL: Wählen Sie einen API-Leitfaden und verwandte FAQ für weitere Informationen. Alternativen zu dieser Funktion gehören mysqli_query() und PDO :: Abfrage()

für pädagogische Zwecke: So sollte Ihr Code aussehen, wenn Sie mysql_query verwenden:

//you should definitely create a function that sanitizes the users input 
//so that you don't get hacked via sql injection: 
$value = sanitize($value); 
$id= sanitize($id); 

$sql = "UPDATE employee SET annual_additional = '$value' 
WHERE emp_id='$id'"; 
if (!result = mysql_query($sql)) 
{ 
    die("query error".mysql_error()); 
} 
+0

Definitiv, jetzt habe ich mein Problem auf diese Weise behoben, danke – Chathurika

+0

@Chaturika ehrfürchtig kein Problem! Oh, und wenn diese Antwort die ist, die für dich funktioniert hat, akzeptiere sie bitte (mit einem grünen Häkchen), damit die Benutzer wissen, dass es für dich funktioniert hat :) – Webeng

1

mit witch Abfrage erhalten Sie den Fehler? Einfügen? Verwenden Sie weiterhin mysql_real_escape_string oder dieses: http://pear.php.net/package/DB für Ihre Abfragen.

2

Sie können INSERT.....WHERE nicht verwenden. Zum Aktualisieren einer Zeile benötigen Sie UPDATE....WHERE.

Wenn Sie die Bedingung haben, die Sie einfügen müssen und wenn die key nicht vorhanden ist, dann verwenden Sie das angegebene Beispiel.

Demo zum Beispiel:

INSERT INTO Users (id, weight, desiredWeight) VALUES(1, 160, 145) ON DUPLICATE KEY UPDATE weight=160, desiredWeight=145 

Collected von:MySQL Insert Where query

1

Sie verwenden sollten ‚UPDATE 'anstelle von 'INSERT'

UPDATE employee SET `annual_additional`='$value' WHERE `emp_id`='$id' 

Hoffnung es wird funktionieren.