使用php通过mysqli从数据库中恢复图像不起作用

时间:2015-05-30 02:37:10

标签: php html mysql mysqli

我正在尝试从php中的mysql上传和检索图像。上传部分工作正常,而当我试图检索图像时,它给我错误。我尝试了不同的逻辑,但我想我不是在写一个:(。 connection.php

<?php
$servername = "localhost";
$username = "root";
$pass = "";
$dbname = "hightech"; 
// Create connection
$conn = new mysqli($servername, $username, $pass, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

上传

//file upload start
    $file_result="";

        if ($_FILES["add_img"]["error"]>0){
            $file_result .= "No File uploaded or invalid File";
            $file_result .="Error Code: " . $_FILES["sound_input"]["error"] ."<br>";  
        }  
        else {

            move_uploaded_file($_FILES["add_img"]["tmp_name"],
                    "C:/wamp/www/hightech/images/uploads/" 
                    . $_FILES["add_img"]["name"]);
            $file_result .= "File upload Successful!" ;        
        }
        echo $file_result;

        //file upload end

在数据库中保存文件名其他数据

$sql = "INSERT INTO desktop(type,name,company,item_img,price,point1,point2,point3,point4,point5)
        VALUES ('$type','$itemname','$comp','$img','$price','$point1','$point2','$point3','$point4','$point5')";
$run=  $conn->query($sql);

从数据库中检索图像和其他数据。

 <?php             
   $sql1="SELECTname,price,point1,point2,point3,
   point4,point5,item_img       
   FROM desktop WHERE company = 'Alienware' ";
    $sel_query1= mysqli_query($conn, $sql1);
        if($sel_query1 == FALSE) { 
        die(mysqli_error()); // TODO: better error handling
        }

    while ($row = mysqli_fetch_array($sel_query1)) {
        echo'<div>'.
           '<img src="C:/wamp/www/hightech/images/uploads/'.row['item_img']. '"/>'.
           '<span>'.
             '<ul>'.
                '<li  id="item_name" style="color:red">'.$row['name'].'</li>'.
                '<li>'.$row['point1'].'</li>'.
                '<li>'.$row['point2'].'</li>'.
                '<li>'.$row['point3'].'</li>'.
                '<li>'.$row['point4'].'</li>'.
                '<li>'.$row['point5'].'</li>'.
            '<ol style="color:red;padding-left:1;font-size:18">'.$row['price'].'</ol>'.
            '<ol style="padding-left:110"> <a>'.'<img src="http://localhost/hightech/images/add.png" />'. '</a></ol>
             </ul>
          </span>

       </div>';
    }
?>
  

错误:解析错误:语法错误,意外'[',期待','或';'在第85行的C:\ wamp \ www \ hightech \ admin \ admin_desktop.php

第85行

<img src="C:/wamp/www/hightech/images/uploads/'.row['item_img']. '"/>

3 个答案:

答案 0 :(得分:1)

您只需尝试以下代码。

  <?php
       $sql1="SELECT fields_you want FROM `tablename` WHERE YOUR_CONDITION ";
       $sel_query1= mysqli_query($conn, $sql1);
        if($sel_query1 == FALSE) 
        { 
          die(mysqli_error()); // TODO: better error handling
        }

      while ($row = mysqli_fetch_array($sel_query1)) 
      {
        echo'<div>'.
       '<img src="images/uploads/'.$row['IMAGE_FIEDL_NAME']."/>'.'</div>';        
      }
  ?>

你只是忽略了你的整个路径。如果你的 &#34;图像&#34; &#34;上传&#34; < / em> 文件夹位于项目的同一目录中,您只需提供路径详细信息,例如 &#34; images / uploads&#34; 。 您也可以使用此文件夹结构进行上传过程。够了。 它会显示你的图像。我试过了。它正在工作!!你试着告诉我。

答案 1 :(得分:0)

在$ sql1,你错过了一个空间SELECT名称。也许这是你的错误,因为我们不知道你的错误......

你错过了一个。$ row [&#39; item_img&#39;]

编辑。括号后同一行上还有一个空格。

我不确定但是在回声部分的末尾是否有一些点缺失?

答案 2 :(得分:0)

使用dot在sql语句中的单引号之前,如&#34;&#39;&#34;。$ type。&#34;&#39;&#34;,如果问题出在sql中,可能是它会解决你的问题