我想在一个表中插入两个值。其中一个实际上是从另一个表中使用select语句,如下所示。
query = "INSERT INTO empallowance(emp_id_fk,allowance_id_fk) VALUES(SELECT emp_id FROM employee WHERE emp_cnic='" + cnic + "',@allowance_id_fk)";
如图所示,存在语法错误异常。
答案 0 :(得分:1)
你必须在子查询中使用括号。 试试这个:
$date = date('Y-M-D');
$new-date = date_format($date,'F jS Y');
echo $new-date;
答案 1 :(得分:0)
你不能这样做但你可以创建一个select语句和insert its results:
"INSERT INTO empallowance (emp_id_fk,allowance_id_fk)
select emp_id, @allowance_id_fk
from employee
WHERE emp_cnic='" + cnic + "'"
另外,请注意,使用字符串连接插入参数对于SQL注入很容易受到攻击 - 使用parameterized queries而不是
答案 2 :(得分:0)
您的SQL语句无效。使用以下内容:
query = "INSERT INTO empallowance SELECT emp_id, @allowance_id_fk FROM employee WHERE emp_cnic='" + cnic + "'";
您可以阅读有关方法的所有信息here。
答案 3 :(得分:0)
您可以按以下方式修改查询:
query = "INSERT INTO empallowance(emp_id_fk,allowance_id_fk) SELECT emp_id, @allowance_id_fk FROM employee WHERE emp_cnic= ' " + cnic + "'";
答案 4 :(得分:0)
在select查询之间添加'()'以分隔插入查询。
INSERT INTO empallowance(emp_id_fk,allowance_id_fk) VALUES((SELECT emp_id FROM employee WHERE emp_cnic='" + cnic + "'),@allowance_id_fk)
答案 5 :(得分:0)
你可以很容易地做到这一点,它对我有用
query = "INSERT into TABLE1 (name,city)
Select name, 'Paris' from TABLE2 where id = 1";
您可以直接在选择查询中赋值。