簡體   English   中英

用多個選擇語句和php變量插入

[英]insert with multiple select statements and php variables

我想從兩個表(即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);

出現語法錯誤的原因是因為您沒有使用有效的SQL。 INSERT INTO ... SELECT語法僅適用於單一選擇查詢。

目前,您基本上是在鏈接2個完全隨機的查詢,而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. "'";

您使用了錯誤的語法。 使用'INSERT INTO(col1,col2)Values(val1,val2)'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM