我无法从PHP的数据库中获取存储的值(存储的值是没有扩展名的文件名)

时间:2018-10-19 15:29:53

标签: php mysql

我正在尝试从数据库$oldfile获取文件名,并用一个新的文件名$newfile替换它。问题是$oldfile返回一个空值,但是在数据库中它具有一个值。

$oldfile = '';
if(isset($_POST['submit'])){

    $styles=$_POST['styles'];
    $id=intval($_GET['id']);
    $sql=mysqli_query($con,"update styles set stylename='$styles' where id='$id'");

    $file = $oldfile.'.php';

    $tempfile = strtolower($styles);
    $newfile = $tempfile.'.php';

    if(!rename($file, $newfile)){
        $_SESSION['delmsg']="File Not Replaced!";
    }

    $_SESSION['msg']="Styles Updated!".$file;

}

$id=intval($_GET['id']);
$query=mysqli_query($con,"select * from styles where id='$id'");

while($row=mysqli_fetch_array($query)){
    $disp = $row['stylename'];
    $oldfile = strtolower($row['stylename']);
}

2 个答案:

答案 0 :(得分:0)

似乎您可能在第一行返回一个空变量。如果您将该行注释掉,输出是什么:

//$oldfile = ' ';

也,仅供参考...,您正在设置$ sql变量,但未在其他任何地方使用该变量:

$sql=mysqli_query($con,"update styles set stylename='$styles' where id='$id'");

答案 1 :(得分:0)

您必须先填充$ oldfile变量。请尝试以下:

$oldfile = '';
if(isset($_POST['submit'])){
    $styles=$_POST['styles'];
    $id=intval($_GET['id']);

    $sql=mysqli_query($con,"update styles set stylename='$styles' where id='$id'");

    $query=mysqli_query($con,"select * from styles where id='$id'");
    while($row=mysqli_fetch_array($query)){
        $disp = $row['stylename'];
        $oldfile = strtolower($row['stylename']);

        $file = $oldfile.'.php';

        $tempfile = strtolower($styles);
        $newfile = $tempfile.'.php';

        if(!rename($file, $newfile)){
            $_SESSION['delmsg']="File Not Replaced!";
        }

        $_SESSION['msg']="Styles Updated!".$file;
    }
}