Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在运行查询之前检查文件是否存在_Php_Mysql_If Statement - Fatal编程技术网

Php 在运行查询之前检查文件是否存在

Php 在运行查询之前检查文件是否存在,php,mysql,if-statement,Php,Mysql,If Statement,我是新手,请原谅我的无知 我有一个上传PDF表单,我检查表单是否已经存在,如果它不存在,我上传它,因此希望运行mysql插入查询。我试过这个: if (file_exists($pdfSubDirectory.$filename)) if (isset($_POST['submit'])) { $quer->execute(); } 但是我得到了错误 >致命错误:对非对象调用成员函数execute() 有什么想法吗 我的主要代码是 <?p

我是新手,请原谅我的无知

我有一个上传PDF表单,我检查表单是否已经存在,如果它不存在,我上传它,因此希望运行mysql插入查询。我试过这个:

if (file_exists($pdfSubDirectory.$filename))
    if (isset($_POST['submit']))
    {
      $quer->execute();
    }
但是我得到了错误

>致命错误:对非对象调用成员函数execute()

有什么想法吗

我的主要代码是

    <?php
require "config.php";

$cat        = $_GET['cat1'];
$catid      = $_GET['cat'];
$subcat     = $_GET['subcat'];
$subcatid   = $_GET['subcatid'];
$subcat2    = $_GET['subcat2'];

//form vars
$form_class = $_POST['Class']; // create modify delete flag
$form_cerfa = $_POST['Cerfa']; // cerfa Yes or No flag
$form_id = $_POST['ID'];
$form_name = $_POST['Name'];

$predir = "./docs";
$dir = $predir."/" .$cat. "/" .$subcat."/" .$subcat2 . "/";
$dir= strtolower($dir);
$dir= str_replace(' ', '_', $dir);


$MyHtml1 = <<<EOD

<!doctype html>
<html>
<head>
    <title>$subcat / $subcat2</title>
</head>
<body>
<table align="center" border="0" cellpadding="1" cellspacing="1" style="height: 100%; width: 100%;">
    <tbody>
        <tr>
            <td>
            <table border="0" cellpadding="0" cellspacing="0" style="height: 100%; width: 100%;">
                <tbody>
                    <tr>
                        <td style="width: 50%;">
                        <table border="0" cellpadding="0" cellspacing="0" style="width: 100%;">
                            <tbody>
                                <tr>
                                    <td style="width: 50%;">You are in the category:</td>
                                    <td style="width: 50%;">$cat</td>
                                </tr>
                                <tr>
                                    <td>You are in the subcategory:</td>
                                    <td>$subcat</td>
                                </tr>
                                <tr>
                                    <td>You are in section:</td>
                                    <td>$subcat2</td>
                                </tr>
                            </tbody>
                        </table>
                        </td>
                        <td>
                        <p>Time:</p>

                        <p>Date:</p>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2">
                        <hr />
                        <p>...</p>
                        </td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>

EOD;

echo $MyHtml1;
$pdfDirectory = $dir;
$pdfSubDirectory = $pdfDirectory.$_POST['Class']."/";
$thumbDirectory = $pdfDirectory . "pdfimage/";
$filename = basename( $_FILES['pdf']['name'], ".pdf");
$filename = preg_replace("/[^A-Za-z0-9_-]/", "", $filename).".pdf";
$thumb = basename($filename, ".pdf");

if (file_exists($pdfSubDirectory.$filename)) {
    echo "This file already exists.";
} else {
    if(move_uploaded_file($_FILES['pdf']['tmp_name'], $pdfSubDirectory.$filename)) {

    //the path to the PDF file
    $pdfWithPath = $pdfDirectory.$filename;
    $pdfWithSubPath = $pdfSubDirectory.$filename;
    $pdfWithPathImage = $pdfDirectory."pdfimage/";
    $pdfWithPathImageThumb = $pdfWithPathImage.$thumb.".jpg";
    //add the desired extension to the thumbnail
    $thumb = $thumb.".jpg";

    //execute imageMagick's 'convert', setting the color space to RGB and size to 200px wide
    //exec("convert \"{$pdfWithSubPath}[0]\" -colorspace RGB -geometry 100 $thumbDirectory$thumb");
    exec("convert  -density 200 -page 792x612 \"{$pdfWithSubPath}[0]\" -append -resize 240 -background white -flatten +repage $thumbDirectory$thumb");   
    //show the image
    echo "<p><a href=\"$pdfWithPath\"><img src=".$pdfWithPathImageThumb." alt=\"\" /></a></p>";
    echo $pdfWithPathImageThumb;
        }
}
if (isset(file_exists($pdfSubDirectory.$filename)))
    {
      $quer->execute();
    }



///////// start of query for form addition//////////
$quer = $dbo -> prepare("INSERT into form_detail(form_id,form_name,form_category,form_subcategory,form_subcategory2,form_class,form_cerfa) VALUES(:form_id,:form_name,:form_category,:form_subcategory,:form_subcategory2,:form_class,:form_cerfa)");
$quer ->bindParam(':form_id', $form_id);
$quer ->bindParam(':form_name', $form_name);
$quer ->bindParam(':form_category', $catid);
$quer ->bindParam(':form_subcategory', $subcatid);
$quer ->bindParam(':form_subcategory2', $subcat2);
$quer ->bindParam(':form_class', $form_class);
$quer ->bindParam(':form_cerfa', $form_cerfa);

///////////// End of query for form addition////////////


$MyHtml2 = <<<EOD

<form action="" method="post" enctype="multipart/form-data" name="MyForm">
        <input type="file" name="pdf" /><br>

           <table border="0" cellpadding="0" cellspacing="0" style="width: 500px;">
    <tbody>
        <tr>
            <td><label>Cerfa : </label></td>
            <td><input type="radio" name="Cerfa" value="1" checked="checked"/>Yes<input type="radio" name="Cerfa" value="0"/>No<br/></td>
        </tr>
        <tr>
            <td><label>Form Class: </label></td>
            <td><select name="Class">
            <option value="create">Create</option>
            <option value="modify">Modify</option>
            <option value="delete">Delete</option>
        </select></td>
        </tr>
        <tr>
            <td> <label>Form Name: </label></td>
            <td><input type="text" name="Name" value="Name"/><br></td>
        </tr>
        <tr>
            <td><label>Form Reference No : </label></td>
            <td><input type="text" name="ID" value="Reference Number"/></td>
        </tr>
        <tr>
            <td>Check details and upload</td>
            <td><input type="submit" name="submit" value="Upload"/></td>
        </tr>
    </tbody>
</table>



</form>

<table border="0" cellpadding="0" cellspacing="0" style="width: 937px;">
    <tbody>
        <tr>
            <td colspan="2">
            <p>Forms Available</p>
            </td>
        </tr>
    </tbody>
</table>

<table border="1" cellpadding="0" cellspacing="0" style="height: 44px; width: 100%;">
    <tbody>
        <tr>
            <td style="vertical-align: middle; width: 228px;">Ref</td>
            <td rowspan="1" style="vertical-align: middle; width: 89px;">Cerfa</td>
            <td colspan="3" rowspan="1" style="vertical-align: middle; width: 595px;">Name</td>
        </tr>
        <tr>
            <td style="vertical-align: middle; width: 228px;">&nbsp;</td>
            <td rowspan="1" style="text-align: center; vertical-align: middle;">&nbsp;</td>
            <td colspan="3" rowspan="1" style="text-align: center; vertical-align: middle;">&nbsp;</td>
        </tr>
    </tbody>
</table>

<p>&nbsp;</p>
</body>
</html>

EOD;

echo $MyHtml2;

$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir."create/"));

while($it->valid()) {

    if (!$it->isDot()) {

        echo 'File Name: ' . $it->getSubPathName() . "\n<br>";
    }

    $it->next();
}
?>

您需要在执行之前准备
$query
。把这个密码

///////// start of query for form addition//////////
$quer = $dbo -> prepare("INSERT into form_detail(form_id,form_name,form_category,form_subcategory,form_subcategory2,form_class,form_cerfa) VALUES(:form_id,:form_name,:form_category,:form_subcategory,:form_subcategory2,:form_class,:form_cerfa)");
$quer ->bindParam(':form_id', $form_id);
$quer ->bindParam(':form_name', $form_name);
$quer ->bindParam(':form_category', $catid);
$quer ->bindParam(':form_subcategory', $subcatid);
$quer ->bindParam(':form_subcategory2', $subcat2);
$quer ->bindParam(':form_class', $form_class);
$quer ->bindParam(':form_cerfa', $form_cerfa);
///////////// End of query for form addition////////////
除此之外:

if (file_exists($pdfSubDirectory.$filename))
    if (isset($_POST['submit']))
    {
      $quer->execute();
    }

当脚本运行时,它会进入
if(file_exists($pdfSubDirectory.$filename))
,发现它是真的,并尝试执行一个不存在的查询。

哪里定义了$query?你能显示该代码吗?为什么要投-1票?这真的是一个愚蠢的问题吗?在定义$quer之前,您正在使用它。错误已经消失,但它会将它添加到mysql表中。如果表单存在,如何停止添加它?等等,如果表单确实存在,停止添加?如果这是您想要的,请将If条件更改为
If(!file_exists($pdfSubDirectory.$filename))
该过程是选择file,单击upload,它检查是否存在,它说“file exists”,否则它将添加它,然后应将表单详细信息添加到mysql表我找到答案,我删除了If(file_exists($pdfSubDirectory.$filename))如果(设置($_POST['submit']){$query->execute();}并放置$query->execute();在echo$pdfWithPathImageThumb行之后;