以下代码是图像copy到指定文件夹然后将新的地址存入mysql
<?php
$path = "studentimages";
$mode = 0777;
$netId = "G199026";if ( !file_exists ( $path ) ) {
mkdir($path,$mode);
}$file_source = $_FILES['img'];
$file_name = $path."/".$netId.".jpg";
if ( !copy( $file_source['tmp_name'], $file_name ) )
echo "fail";
else
echo "successful";
$con = mysql_connect("localhost","root","199026");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
else {
echo "<br />";
}
$dbselect = mysql_select_db("andy", $con);
if ( !$dbselect ) {
echo "<script language=javascript>alert('System Error!');history.back();</script>";
}$sql = mysql_query("INSERT INTO images (image_address) 
VALUES ('$file_name')");if (mysql_query($sql,$con) )
  {
  echo "<script language=javascript>alert('Save image error!');history.back();</script>";
  }
  
  else {
echo "<script language=javascript>alert('save image successful');</script>";$sql = "select image from images ";
$result = mysql_query($sql);while ( $row = mysql_fetch_array($result) ) {
echo "<img src= '$row['image']' >";//说错误在这里!
}
  }
mysql_close($con); ?>Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\AppServ\www\build.php on line 46
我发现现在连文件夹都创建不成功

解决方案 »

  1.   

    echo "<img src='".$row['image']."'>";
      

  2.   

    2楼的ok但出现新问题
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\build.php on line 45
    图片还没有显示出来!
      

  3.   

    $result = mysql_query($sql);
    print_r($result);//打印一下
      

  4.   

    等一下,刚才有好多低级错误,变量名字错了,现在的code是对的,
    <?php
    $path = "studentimages";
    $mode = 0777;
    $netId = "G199026";if ( !file_exists ( $path ) ) {
    mkdir($path,$mode);
    }$file_source = $_FILES['img'];
    $file_name = $path."/".$netId.".jpg";
    if ( !copy( $file_source['tmp_name'], $file_name ) )
    echo "fail";
    else
    echo "successful";
    $con = mysql_connect("localhost","root","199026");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    else {
    echo "<br />";
    }
    $dbselect = mysql_select_db("andy", $con);
    if ( !$dbselect ) {
    echo "<script language=javascript>alert('System Error!');history.back();</script>";
    }$sql = mysql_query("INSERT INTO images  ( file_name ) VALUES ('$file_name')");
    if (mysql_query($sql,$con) )
      {
      echo "<script language=javascript>alert('Save image error!');history.back();</script>";
      }
      
      else {
    echo "<script language=javascript>alert('save image successful');</script>";$sql = "select file_name from images ";
    $result = mysql_query($sql);
    print_r($result);while ( $row = mysql_fetch_array($result) ) {
    echo "<img src='".$row['file_name']."'>";
    }
      }
    mysql_close($con); ?>我查看了数据库,数据没有存进去
      

  5.   

    $sql = "INSERT INTO images (file_name) 
    VALUES ('$file_name')";
    if (!mysql_query($sql,$con) )
      {
      echo "<script language=javascript>alert('Save image error!');history.back();</script>";
      }
    这里的语句被执行了,是否是sql语句有问题?我看没问题啊,sql表明属性名都查过了
      

  6.   

    echo $sql; //打印一下sql
      

  7.   

    结果是:
    INSERT INTO images (file_name) VALUES ('studentimages/G199026.jpg')
      

  8.   

    只要是算法是正确的,调试程序只能靠自己
    推荐一个FireFox下调试PHP的工具,FireBug+FirePHP,这样配合ZendStudio应该比较完美了
    FirePHP可以HookPHP的错误处理,在程序出错的时候显示500页面,并在FireBug控制台输入错误信息,这样能获得与Java一样的调试体验了,另外FirePHP的替代者FireConsole也在开发中.
    可以用fb($sql),比echo($sql)方便多了,不影响页面显示
      

  9.   

    在你的sql工具中执行语句 看看能不能成功 可以的话 就是sql语句之前的连接有问题 
      

  10.   

    ok我解决了
    主要问题是sql中存放路径的问题
    应该用varchar(255)!