我有这个PHP脚本:
foreach (get_all_topics () as $topic_id => $topic_info) {
$result = mysql_query("DELETE FROM marks
WHERE user_id = $user_id
AND topic_id = $topic_id", $db);
echo "DELETE FROM marks
WHERE user_id = $user_id
AND topic_id = $topic_id : " . mysql_error() . " : " . mysql_affected_rows();
}
我设置了有效的$user_id
,get_all_topics()
提供了由echo
打印的有效主题信息。但是它始终返回false
并且我有user_id = 1 AND topic_id = 1
的数据(如果我在交互式mysql提示符中复制并粘贴echo
ed字符串,它也会被删除 - 所以没有拼写错误!)。
注意:插入或更新表格的其他功能正常。我正在学习php - mysql,这是我第一次从数据库中删除一些内容。任何人都可以建议这个脚本的问题是什么?或者这可能存在任何权限问题吗?
答案 0 :(得分:1)
尝试在$ user_id和$ topic_id周围放置单引号,以便您的代码
mysql_query( "DELETE FROM marks WHERE user_id='$user_id' AND topic_id='$topic_id'", $db );
答案 1 :(得分:1)
databasename
。tablename
。答案 2 :(得分:0)
我想构建一个查询字符串:
$myQuery = "DELETE FROM marks WHERE user_id= " . $user_id . "AND topic_id=" . $topic_id;
mysql_query($myQuery);
答案 3 :(得分:-1)
我已将上面的代码更改为
$all_topics = get_all_topics(); foreach ($all_topics as $topic_id => $topic_info) { $result = mysql_query("DELETE FROM marks WHERE user_id = $user_id AND topic_id = $topic_id", $db); echo "DELETE FROM marks WHERE user_id = $user_id AND topic_id = $topic_id : " . mysql_error() . " : " . mysql_affected_rows(); }
它有效!任何有类似问题的人都可以尝试将返回值赋给某个临时变量,然后在foreach循环中使用它。不知道它为什么会起作用。