所以基本上我一直在尝试从先前的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.从信息表中获取信息的身份
2.从图像表中获取图像的id
3.将两个id分别插入id_table中的列
然后我收到了这个错误信息:
错误:您的SQL语法出错;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在第1行'id#4,资源ID#5'附近
我无法弄清问题在哪里......
答案 0 :(得分:1)
$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());
}
答案 1 :(得分:0)
在您的代码中,您只需执行查询。但是你没有获取字段或列值。你可以使用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/en/function.mysql-fetch-row.php http://in3.php.net/manual/en/function.mysql-fetch-array.php