[英]How to use PHP variables with SELECT and INSERT INTO SQL Statements
[英]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.