使用PHP将表单上传到数据库

时间:2015-11-11 16:07:59

标签: php file-upload

我正在尝试编写代码,使用PHP将表单和上传文件中的数据上传到服务器路径。在这个我能够实现上传文件和数据的功能,但在此我想添加一个功能,如果电子邮件已经存在,那么应该抛出“电子邮件已经存在”并且应该接受pnly pdf文件的警告。我尝试了一些编码,但它不起作用。

任何大师都可以在下面的代码中添加代码块,以实现唯一的电子邮件ID功能,并将文件类型限制为仅pdf。

[  
   {  
      "movieID":1,
      "title":"13",
      "type":"DIGITAL",
      "status":"COMING SOON",
      "synopsis":null,
      "director":null,
      "mRating":"G",
      "casts":null,
      "showTimes":null,
      "reviews":null,
   }
]

2 个答案:

答案 0 :(得分:0)

尝试将代码更改为

$sql = "SELECT COUNT(*) AS count from tbl_uploads where email = :email_id";
try {
    $stmt = $DB->prepare($sql);
    $stmt->bindValue(":email_id", $email, PDO::PARAM_STR);
    $stmt->execute();
    //only grabbing one row so use fetch instead of fetchAll
    $result = $stmt->fetch(PDO::FETCH_ASSOC);

    /*
    *check if result is an array
    *check is count exists in the array
    * check if result['count'] gt 0
    */
    if (is_array($result) && array_key_exists('count', $result) && $result["count"] > 0) {
        $msg = "Email already exist";
        $msgType = "warning";
    }

答案 1 :(得分:0)

计算行的方法有很多,在您的情况下更改为:

$stmt->execute();
$result = $stmt->fetchAll();
if (count($result) > 0) {
   $msg = "Email already exist";
   $msgType = "warning";
}

或使用fetch()

$stmt->execute();
if ($stmt->fetch()) {
  $msg = "Email already exist";
  $msgType = "warning";
}

或不提取:

$stmt->execute();
if ($stmt->rowCount() > 0) {
  $msg = "Email already exist";
  $msgType = "warning";
}

或者因为PHP是松散类型的,你可能只需将它强制转换为整数:

if ((int)$result[0]["count"] > 0)