【问题标题】:Parse error: syntax error, unexpected T_ELSE解析错误:语法错误,意外的 T_ELSE
【发布时间】:2014-03-21 15:24:15
【问题描述】:

我只需要关于我的代码的帮助,因为我不知道语法错误在哪里。

$file = $_FILES['image']['tmp_name'];

if (!isset($file)) 
   echo "Please select an image";
else
{
   $image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
   $img_name = addslashes($_FILES['image']['name']);
   $img_size = getimagesize($_FILES['image']['tmp_name']);
   if ($img_size == FALSE) 
      echo "select valid image.";
   else
   {
      if (!$insert = mysql_query("insert into testblob values('','$image','$img_name')"));
         echo "Problem uploading!";
      else
      {
         $lastid = mysql_insert_id();
         echo "Image uploaded.<p />Your image:<p /><img src=get.php?id=$lastid>";
      }
   }
}

我只需要知道错误在哪里。感谢您的帮助。更多的力量..

【问题讨论】:

  • PHP 报告哪一行?
  • 缩进你的代码可能会使解决方案显而易见。
  • 我知道if..else 可以不用花括号,但你真的应该总是使用花括号,即使它只有一行...
  • 另外,if (!$insert=mysql_query("insert into testblob values('','$image','$img_name')")); 最后不应该有;..
  • @celeriko,发现我的错误。谢谢!

标签: php mysql


【解决方案1】:

您的额外条件语句中有一个分号;

if (!$insert=mysql_query("insert into testblob values('','$image','$img_name')"));

删除它并更改为:

if (!$insert=mysql_query("insert into testblob values('','$image','$img_name')"))

你为什么不更好地使用它?

   $file= $_FILES['image']['tmp_name'];
   if (!isset($file)){
      echo "Please select an image";
     }
   else{
        $image= addslashes(file_get_contents($_FILES['image']['tmp_name']));
        $img_name= addslashes($_FILES['image']['name']);
        $img_size = getimagesize($_FILES['image']['tmp_name']);

       if ($img_size==FALSE){
             echo "select valid image.";
              }
       else
         {

              if (!$insert=mysql_query("insert into testblob values('','$image','$img_name')")){
                   echo "Problem uploading!"; }
              else{

                $lastid = mysql_insert_id();
                    echo "Image uploaded.<p />Your image:<p /><img src=get.php?id=$lastid>";
                }

        }
 }

【讨论】:

    【解决方案2】:

    我打算编写代码并添加了一些大括号,这样更容易看到错误。我还在其中一个可能导致错误的 if 子句之后删除了一个分号 (;)。

    if (!isset($file)) {
        echo "Please select an image";
    }
    else {
        $image= addslashes(file_get_contents($_FILES['image']['tmp_name']));
        $img_name= addslashes($_FILES['image']['name']);
        $img_size = getimagesize($_FILES['image']['tmp_name']);
    
        if ($img_size==FALSE) {
            echo "select valid image.";
        }
        else {
            if (!$insert=mysql_query("insert into testblob values('','$image','$img_name')")) /* HERE WAS A SEMICOLON */ {
                echo "Problem uploading!";
            }
            else {
                $lastid = mysql_insert_id();
                echo "Image uploaded.<p />Your image:<p /><img src=get.php?id=$lastid>";
            }
    
        }
    }
    

    【讨论】:

      【解决方案3】:

      这一行

      if (!$insert=mysql_query("insert into testblob values('','$image','$img_name')"));

      在它的末尾有一个不必要的;

      【讨论】:

        猜你喜欢
        • 2020-01-26
        • 2012-06-28
        • 2012-10-03
        • 1970-01-01
        • 1970-01-01
        • 2012-01-06
        • 2013-10-11
        • 2023-03-18
        • 1970-01-01
        相关资源
        最近更新 更多