当使用PHP删除MSSQL表行时,如何取消文件与网站文件夹的链接
我正在尝试建立链接 使用while函数从MSSQL表中删除特定行。目前,底层代码运行良好,可以从表中删除特定行,但我现在希望它从sharedstorage文件夹中取消文件链接。解除链接的文件的文件名存储在该表行的“名称”列中。每个表行都有一个名称列,其中包含位于sharedstorage文件夹中的文件的唯一文件名 简单地说,我的问题是当一个表行被删除时,我网站的sharedstorage文件夹中该行的文件将保留,并且不会与该行一起被删除 以下是针对特定行点击删除链接的代码:当使用PHP删除MSSQL表行时,如何取消文件与网站文件夹的链接,php,sql,sql-server,sql-delete,unlink,Php,Sql,Sql Server,Sql Delete,Unlink,我正在尝试建立链接 使用while函数从MSSQL表中删除特定行。目前,底层代码运行良好,可以从表中删除特定行,但我现在希望它从sharedstorage文件夹中取消文件链接。解除链接的文件的文件名存储在该表行的“名称”列中。每个表行都有一个名称列,其中包含位于sharedstorage文件夹中的文件的唯一文件名 简单地说,我的问题是当一个表行被删除时,我网站的sharedstorage文件夹中该行的文件将保留,并且不会与该行一起被删除 以下是针对特定行点击删除链接的代码: // delete
// delete from table
if ($_GET['del'] == 'true') {
// cast id as int for security
$id = (int) $_GET['orderid'];
// delete row from table
$sql = "DELETE FROM shareddrive WHERE orderid = '$id'";
$result = mssql_query($sql, $conn) or die(mssql_get_last_message());
// select the info, ordering by usort
$sql = "SELECT orderid, name, type FROM shareddrive ORDER BY orderid";
$result = mssql_query($sql, $conn) or die(mssql_get_last_message());
// initialize a counter for rewriting usort
$job_pos_sortt = 1;
// while there is info to be fetched...
while ($r = mssql_fetch_assoc($result)) {
$job_poss = $r['orderid'];
// update the usort number to the one in the next number
$sql = "update shareddrive SET orderid = '$job_pos_sortt' WHERE name = '$job_poss'";
$update = mssql_query($sql, $conn) or die(mssql_get_last_message());
// inc to next avail number
$job_pos_sortt++;
} // end while // end if del
}
非常感谢您提供的所有帮助。您提到取消链接,但代码中没有?我正在尝试向代码中添加一个取消链接的函数。我使用的是MSSQL,因此mysql\u fetch\u数组必须是其他的。我将尝试mssql_fetch_assoc,我会让你知道它是否有效。它不起作用。警告:unlink要求参数1是字符串,数组在第1202行的D:\Hostindstaffportal\sharedstorage.php中给出。您不应该要求这些参数。而且你自己都没试过。对不起,我不能投票。
// delete from table
if ($_GET['del'] == 'true') {
// cast id as int for security
$id = (int) $_GET['orderid'];
// delete row from table
$file = mssql_fetch_array(mssql_query("select name from shareddrive where orderid = $id"));
unlink($file[0]);
$sql = "DELETE FROM shareddrive WHERE orderid = '$id'";
$result = mssql_query($sql, $conn) or die(mssql_get_last_message());
// select the info, ordering by usort
$sql = "SELECT orderid, name, type FROM shareddrive ORDER BY orderid";
$result = mssql_query($sql, $conn) or die(mssql_get_last_message());
// initialize a counter for rewriting usort
$job_pos_sortt = 1;
// while there is info to be fetched...
while ($r = mssql_fetch_assoc($result)) {
$job_poss = $r['orderid'];
// update the usort number to the one in the next number
$sql = "update shareddrive SET orderid = '$job_pos_sortt' WHERE name = '$job_poss'";
$update = mssql_query($sql, $conn) or die(mssql_get_last_message());
// inc to next avail number
$job_pos_sortt++;
} // end while // end if del
}