查询不会从数据库中删除数据

时间:2012-05-25 12:35:04

标签: php mysql

这是我的查询

$db2=mysql_connect("localhost","root","");
    mysql_select_db("my_requests",$db2);

    $query=mysql_query("SELECT * FROM details INNER JOIN product ON details.user_id = product.user_id"); // find the city
    $row=mysql_fetch_array($query);// save record

        $id=$row['user_id'];
        echo "$id";


        $query1=mysql_query("DELETE * FROM details WHERE details.user_id=$id");
        $query2=mysql_query("DELETE * FROM product WHERE product.user_id=$id");

这里我有两个表产品和细节,用户ID是细节中的主键,并在产品中作为外键。

假设我在数据库中有两个条目,user_id = 12,另一个条目有user_id = 11  1.当我接受两个表的内连接并尝试显示user_id时,它只显示一个user_id 12  2.当我尝试使用user_id删除数据时,它不会从表中删除数据。

抱歉英文不好

2 个答案:

答案 0 :(得分:7)

proper syntax of a DELETE query不包括*

DELETE FROM product WHERE product.user_id=$id
//^^^^^^^^^

如果您执行一些基本的错误检查和调试,API将报告语法错误。

// This query has a syntax error and will return FALSE...
$query1 = mysql_query("DELETE * FROM details WHERE details.user_id=$id");
if (!$query1) {
  // On failure, see what your error was.
  echo mysql_error();
}

以上将报告类似于以下错误:

  

错误1064(42000):您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'* FROM

附近使用正确的语法

答案 1 :(得分:1)

SELECT查询中,您必须指定tha表以获取* details.*products.*,因为您正在加入两个表格。在你的情况下,它是相同的结果。

您还需要将$row=mysql_fetch_array($query);置于循环中,以获取每一行,然后,您的语法错误{\ n}}:

DELETE