2011-12-09 21 views
0

這裏有一個表我的樣本:MySQL批處理和連接:是否有可能使用SQL文件注入?

mysql> select * from table_a where description='Auto'; 
+----+----------+-------------+-----------------+ 
| id | idparent | description | description_url | 
+----+----------+-------------+-----------------+ 
| 11 |  NULL | Auto  | NULL   | 
| 74 |  73 | Auto  | NULL   | 
+----+----------+-------------+-----------------+ 
2 rows in set (0.00 sec) 

mysql> 

現在我插入到另一個表中的另一個記錄,並記住它的最後插入的ID:

INSERT INTO table_b (description) values ('Myvalue'); 
set @lt=LAST_INSERT_ID(); 

現在我已經進入@lt值。 我能做到這一點(和它的作品):

INSERT INTO table_a_link_b (id_a, id_b) VALUES (11, @lt); 
INSERT INTO table_a_link_b (id_a, id_b) VALUES (74, @lt); 

現在接下來不起作用:

INSERT INTO table_a_link_b (id_a, id_b) VALUES 
    ((SELECT id FROM table_a where description='Auto') , @lt); 

所以我試圖把它變成一個變量:

mysql> set @t=(select id from table_a where description='Auto'); 
ERROR 1242 (21000): Subquery returns more than 1 row 

它不起作用。有沒有辦法我可以做到這一點沒有使一個Php批處理文件和留 SQL?

+0

您使用batch'和'injection'的'混淆。你能澄清嗎? –

+0

batch =有訂單的文件。 SQL批處理=有SQL命令的文件。注入= **'mysql -u用戶-ppassword數據庫名稱

回答

2
INSERT INTO table_a_link_b (id_a, id_b) 
SELECT id,@lt FROM table_a where description='Auto'; 
+0

這是我的查詢工作,感謝你的人! **'插入到metier_categorie(SELECT @ lt,來自categorie2的id,其中description ='Automobile');'**再次感謝! –

0

會不會有這樣的工作?

INSERT INTO table_a_link_b (id_a, id_b) 
    SELECT id, max(table_b.id) FROM table_a 
    join table_b on table_a.description = table_b.description 
    where table_a.description='Auto' group by table_a.id; 
相關問題