mySql Delete仅删除数据而不是整个条目

时间:2010-04-03 21:40:36

标签: php mysql phpmyadmin

大家好我在PHP代码中有这一行

 `$insert = "DELETE FROM allocation_table WHERE job = '$jobnumber' " ;
  Mysql_query ($insert) ;`

问题是它会从我表中的一行中删除所有值,而不是条目本身。正如你在图片中看到的那样,如果删除job = 315,它不会删除该行,但会删除所有条目

然而,在它之前的代码(不同的表)。它工作正常,整行被删除

$insert = "DELETE FROM event WHERE jobnumber = '$jobnumber' " ; 
mysql_query ($insert) ;enter code here

有人可以提供一些建议吗? alt text http://img34.imageshack.us/img34/4431/tablenj.jpg

3 个答案:

答案 0 :(得分:0)

您的代码中是否有任何错误处理例程?
您可能还想添加一些调试输出(甚至更好地使用像xdebug这样的调试器) (过度简化)示例:

$insert = "DELETE FROM allocation_table WHERE job = '$jobnumber' " ;
echo '<pre>Debug: query=', htmlspecialchars($insert), '</pre>';
$rc = mysql_query($insert);
if ( !$rc ) {
  echo '<pre>mysql_query failed: ', mysql_error(), '</pre>';
}
else {
  echo '<pre>Debug: affected rows=', mysql_affected_rows(), '</pre>';
}

$insert = "DELETE FROM event WHERE jobnumber = '$jobnumber' " ; 
echo '<pre>Debug: query=', htmlspecialchars($insert), '</pre>';
$rc = mysql_query($insert);
if ( !$rc ) {
  echo '<pre>mysql_query failed: ', mysql_error(), '</pre>';
}
else {
  echo '<pre>Debug: affected rows=', mysql_affected_rows(), '</pre>';
}

答案 1 :(得分:0)

也许你在MySQL表上有一些奇怪的设置导致查询以不同的方式运行。您是自己创建了表(使用PMA吗?)还是从其他地方导入它?

使用PHPMyAdmin删除时,它运行的查询是什么?

答案 2 :(得分:0)

尝试在PhpMyAdmin中删除,看看会发生什么。至少在那里你可以轻松看到任何错误信息。

您是否定义了外键和/或表约束?