2016-05-26 14 views
0

いくつかのwhere条件でデータをmysqlテーブルに挿入しようとしました。しかし、それは、私はそれを修正することができますどのように、助けてくださいクエリ次、私が試してみましたmysqlにWHERE条件を指定してクエリを挿入します。

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 

あるいくつかのエラー、

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()); 
    }} 

になります!

+2

なぜ、 'Insert ... Where'が必要なのか、' Update .... Where 'を使用してください。 –

+1

サンプルを確認してください:[mysql-insert-where-query](http://stackoverflow.com/questions/485039/mysql -insert-where-query) –

+1

挿入ステートメントにwhere句はありません。あなたは何をしようとしているのですか? – Joni

答えて

1

重要WARNING:するmysql_queryはPHP 5.5.0で廃止されました、そしてそれはPHP 7.0.0で削除されました。代わりに、MySQLiまたはPDO_MySQL拡張を使用する必要があります。詳細については、MySQL:APIガイドの選択と関連するFAQを参照してください。教育目的 FORこの機能の代替(mysqli_queryを含める)とPDO ::クエリ()

:これはあなたがするmysql_queryを使用している場合、あなたのコードがどのように見えるべきかです:

//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

の場合はどうか教えてください間違いなく、この方法で問題を解決しました。ありがとうございます。 – Chathurika

+0

@Chathurika素晴らしい問題はありません!ああ、この回答があなたのために働いたものなら、それを(緑色のチェックマークで)受け入れて、ユーザーがそれがあなたのために働いたことを知ってください:) – Webeng

1

魔女のクエリであなたはエラーが表示されますか?挿入しますか? さらに、mysql_real_escape_stringまたはhttp://pear.php.net/package/DBをquerysに使用してください。

2

INSERT.....WHEREを使用することはできません。行を更新するには、UPDATE....WHEREが必要です。

挿入する必要がある条件があり、keyが存在しない場合は、指定された例を使用します。例えば

デモ:

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

から採取:MySQL Insert Where query

1

あなたが「UPDATEを使用する必要があります'の代わりに' INSERT '

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

希望が効いています。

関連する問題