插入多个select语句和php变量

时间:2014-02-03 18:40:53

标签: php mysql

我想在两个表中插入记录到产品表中,即adminlogin和product_category以及几个php变量。我的查询不起作用,给出语法错误。请帮助

$sSQL4 = 
"INSERT INTO product(user_id,category_id,product_id,title,price,product_img,product_status) Select admin_id from adminlogin where username='" .$user_name. "',
 SELECT category_id,'',
'" .$title. "',
'" .$price. "',
'" .$file_name1. "',
'pending' from product_category WHERE category_name='" .$category. "'";
$result4= mysql_query($sSQL4);

2 个答案:

答案 0 :(得分:0)

您收到语法错误的原因是您没有使用有效的SQL。 INSERT INTO ... SELECT语法仅适用于SINGLE选择查询。

目前,你基本上是连接两个完全随机的查询,而且mysql没有丝毫的线索如何链接它们(即使它是可能的)。

您想要的是要么做2个查询: 1.获取用户名的查询 2.插入...选择的查询,同时自己将用户名添加为静态字符串。

或者,您可以使用子查询添加用户名。但是,由于插入的每一行都重复了子查询,这实际上要慢得多(!)。

使用子查询,您的查询将如下所示:

$sSQL4 = "INSERT INTO product(user_id,category_id,product_id,title,price,product_img,product_status) SELECT (SELECT admin_id from adminlogin WHERE username='" .$user_name. "'), category_id,'','" .$title. "','" .$price. "','" .$file_name1. "','pending' FROM product_category WHERE category_name='" .$category. "'";

$result4 = mysql_query($sSQL4);

有2个查询,你会得到类似的结果:

$q = mysql_query("SELECT admin_id FROM adminlogin WHERE username='" . $user_name . "'");
$adminId = mysql_fetch_object($q)->admin_id;

$sSQL4 = "INSERT INTO product(user_id,category_id,product_id,title,price,product_img,product_status) SELECT '".$adminId."', category_id,'','" .$title. "','" .$price. "','" .$file_name1. "','pending' FROM product_category WHERE category_name='" .$category. "'";

答案 1 :(得分:0)

您使用的语法错误。使用'INSERT INTO(col1,col2)值(val1,val2)'