我试图将数据插入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());
}}
我该如何解决,请帮忙!
答案 0 :(得分:2)
您无法使用INSERT.....WHERE
,有关更新您需要的行UPDATE....WHERE
。
如果你有条件需要插入,如果key
不存在则使用给定的例子。
演示例如:
INSERT INTO Users (id, weight, desiredWeight) VALUES(1, 160, 145) ON DUPLICATE KEY UPDATE weight=160, desiredWeight=145
答案 1 :(得分:1)
你得到错误?插入? 此外,请使用mysql_real_escape_string或:http://pear.php.net/package/DB作为查询。
答案 2 :(得分:1)
重要警告:在PHP 5.5.0中不推荐使用mysql_query,它已在PHP 7.0.0中删除。相反,应该使用MySQLi或PDO_MySQL扩展。另请参阅MySQL:选择API指南和相关的常见问题解答以获取更多信息。此函数的替代方法包括mysqli_query()和PDO :: query()
出于教育目的:如果您使用的是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());
}
答案 3 :(得分:1)
你应该使用'更新'而不是' INSERT'
UPDATE employee SET `annual_additional`='$value' WHERE `emp_id`='$id'
希望它会起作用。