创建mysqli删除查询时,如何运行PHP代码删除与删除的信息关联的文件?
我知道mysqli::$affected_rows
,但它并没有真正帮助我。
答案 0 :(得分:1)
以下行删除了所有包含单词" Cron"的行。在标题'列。
mysqli_query($con,"delete from `foexstco_rr`.`Timings` where `Title`='Cron'");
下一行已删除所有内容。
mysqli_query($con,"delete from `foexstco_rr`.`Timings`");
此行删除了包含3个条件的行。请注意,**和**必须分开每个条件。
mysqli_query($con,"delete from `foexstco_rr`.`Timings` where `Number`='77' and `Title`='Cron' and `Cols`='1'");
如果您打印了MySqli回复," 1"将意味着该命令已执行,但并不一定意味着已删除任何行。 " 0"表示命令编写错误。
答案 1 :(得分:0)
你可以运行两个查询。那就是:
SELECT id, relevant_field from my_table WHERE the_condition_for_the_rows_to_delete.
然后是第二个查询:
DELETE FROM my_table WHERE id IN (the_ids_you_got_with_the_first_select)
之后删除与第一个查询结果相关联的文件。
答案 2 :(得分:0)
您可以使用PHP的unlink()
功能删除文件(docs here)。
首先进行查询以获取文件位置,然后运行循环结果:
$mysqli = new mysqli("localhost", "user", "password", "database");
$results = $mysqli->query("SELECT id,file_path FROM table WHERE whatever")->fetch_assoc();
foreach($results as $result) {
unlink($row['file_path']);
$mysqli->query("DELETE FROM table WHERE id = " . $row['id']);
}
确保清理任何用户提交的输入以避免SQL注入。
编辑:这不是最有效的方式 - 我已经证明了这种方式简化代码,你最好将数据添加到数组然后删除所有单个查询中的行。