【发布时间】:2018-06-26 12:52:11
【问题描述】:
使用INSERT INTO SELECT 语句从“table2”更改“table1”中的值时遇到问题。它将 table2 复制到 table1 中。
让我解释一下……
您在下面 table2 的 SELECT 语句中看到 AND group_name = 'djsfshj'... 我需要将该值 (djsfshj) 放入“table1”但是当我运行我的代码时 table1 没有不要添加任何东西。它有点忽略它,我没有收到任何错误。如果我删除 AND group_name = 'djsfshj' 我的代码有效,但 group_name 将为空白。
这让我大吃一惊,我怎么不能让它工作。知道为什么会这样吗?任何帮助表示赞赏!
代码:
foreach ($_GET["users_slideshows"] as $users_pick) {
$sql = "INSERT INTO table1 (username, volume, name, image, content, cssanimate, group_name)
SELECT '".$user_data['data']['username']."', volume, name, image, content, cssanimate, group_name
FROM table2 WHERE volume IN ('".$users_pick."') AND group_name = 'djsfshj' ";
if ($conn->query($sql) === TRUE) {
echo "";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
【问题讨论】:
-
select 语句本身是否返回任何行?
-
在定义列的 SELECT 语句中指定
$user_data['data']['username']似乎很奇怪。那不应该只是您的列名,而不是用户名值吗? -
@RobertC 我也想过,但它在 select 语句中,所以可以。当然应该在参数化查询中
-
"如果您删除 group_name"... 有趣... 您应该检查给定卷的行是否具有您想要的 group_name。就像@aynber 所说,您应该在数据库管理器(phpMyadmin,...)中单独检查 SELECT 语句