[英]Extract columns from different tables and insert into another one
因此,基本上我一直在嘗試從先前從2個表中提取的列中將列插入到我的第三個表中。
我有一個信息表,用於存儲用戶信息,一個圖像表,用於存儲用戶的頭像,以及一個id表,類似於參考表,旨在在必要時顯示與正確用戶相關聯的正確頭像(例如用戶查詢或簡單地顯示...)
我的代碼:
$result_1 = mysql_query("SELECT info_id FROM info WHERE info_name = '$_POST[name]'");
$result_2 = mysql_query("SELECT image_id FROM image WHERE image_name = '$_FILES[file][name]'");
$sql = "INSERT INTO id_table (main_id, id_info, id_image)
VALUES (NULL, $result_1, $result_2);";
if(!mysql_query($sql,$connect_database)){
die('Error: ',mysql_error());
}
因此,以上代碼僅說明了我的想法:
1.從信息表獲取信息的ID
2.從圖像表中獲取圖像的ID
3.將兩個ID分別插入id_table的列中
然后我得到了這個錯誤信息:
錯誤:您的SQL語法有錯誤; 檢查與您的MySQL服務器版本相對應的手冊,以在第1行的'id#4,Resource id#5)'附近使用正確的語法
我不知道問題出在哪里...
$result_1
和$result_2
僅包含指向結果的指針。 您仍然必須遍歷它們以獲取實際值。
嘗試這個:
$result_1 = mysql_query("SELECT info_id FROM info WHERE info_name = '$_POST[name]'");
$row1 = mysql_fetch_array($result_1); // get 1st result row
$result_2 = mysql_query("SELECT image_id FROM image WHERE image_name = '$_FILES[file][name]'");
$row2 = mysql_fetch_array($result_2); // get 2nd result row
$sql = "INSERT INTO id_table (main_id, id_info, id_image)
VALUES (NULL, '{$row1['info_id']}', '{$row1['image_id']}');";
if(!mysql_query($sql,$connect_database)){
die('Error: ',mysql_error());
}
在您的代碼中,您只需執行查詢。 但是您沒有獲取字段或列的值。 您可以使用mysql_fetch_array或mysql_fetch_row來獲取它。
根據您的實際需要修改代碼:
$result_1 = mysql_query("SELECT info_id FROM info WHERE info_name = '$_POST[name]'");
$row1 = mysql_fetch_row($result_1);
$infoid = $row1[0];
$result_2 = mysql_query("SELECT image_id FROM image WHERE image_name = '$_FILES[file][name]'");
$row2 = mysql_fetch_row($result_2);
$imageid = $row2[0]
$sql = "INSERT INTO id_table (main_id, id_info, id_image) VALUES (NULL, $infoid, $imageid);";
if(!mysql_query($sql,$connect_database)){ die('Error: ',mysql_error()); }
有關更多信息,請參見: -http : //in3.php.net/manual/zh/function.mysql-fetch-row.php http://in3.php.net/manual/en/function.mysql-fetch-array .php文件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.