Php 查询不会从数据库中删除数据
这是我的问题Php 查询不会从数据库中删除数据,php,mysql,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);/
$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");
这里我有两个表products和detail,用户id在details中是主键,在product中是外键
假设数据库中有两个条目的用户id为12,另一个条目的用户id为11
1.当我获取两个表的innerjoin并尝试显示用户id时,它只显示一个用户id 12
2.当我尝试使用用户id删除数据时,它不会从表中删除数据
抱歉,英语不好中没有*
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”附近使用的正确语法
在
SELECT
查询中,您必须指定一个表来获取*
像详细信息。*
或产品。*
,因为您要连接两个表。对你来说,结果是一样的
您还需要放置$row=mysql\u fetch\u数组($query)在循环中,要获取每一行,则有一个错误的DELETE
语法:
while($row=mysql_fetch_array($query)) {
$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");
}
请停止使用古老的mysql_*函数编写新代码。它们不再被维护,社区已经开始了弃用过程。相反,您应该了解准备好的语句,并使用PDO或MySQLi。在查询中,请尝试选择product.user\u id From…
@Shiven不要使用W3。这是一个SQL语法参考,但不是MySQL文档。MySQL不允许在那里使用*。直接查看MySQL文档。@Shiven此外,w3schools经常被发现过时。这是出了名的不可靠。最好始终转到原始源。我尝试了同样的操作,它从prduct表user_id=11中删除,并且没有删除其余的条目,并且您的脚本回显的$id
比删除的多?不,它只是显示从产品表中删除的一个id