<?php
$fp1=mysql_connect("localhost","****","****") or die("数据库连接失败".mysql_error()) ;
$result=mysql_select_db("test",$fp1)or die("数据库选择失败".mysql_error());
$file=$_POST[file];
$fp=fopen($_POST[file],"r");
$file=fread($fp,filesize($_POST[file]));
$query="insert into tb_tpsc(tpmc,file) values('$_POST[tpmc]','$file')";
$result=mysql_query($query)or die("数据插入失败".mysql_error());
echo $result."<br>";
echo $file;?>
得出结果:数据插入失败You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚' at line 1
发现$file 输出的是乱码,不是01001的形式,怎么解决?

解决方案 »

  1.   

    $query="insert into tb_tpsc(tpmc,file) values('$_POST[tpmc]','$file')";exit($query);//建议先把 sql 语句打印出来, 在 phpmyadmin 里执行一下,看报什么错。
    $result=mysql_query($query)or die("数据插入失败".mysql_error());
      

  2.   

    选择数据库后请先确定传送数据的格式,就是在$result=mysql_select_db("test",$fp1)or die("数据库选择失败".mysql_error());后面加一句 mysql_query("set names gb2312");一般我们的都是用gb2312的。如果此时还不能解决乱码,就在开头<?php换行加一句header("content-type:text/html; charset=gb2312");
      

  3.   

    $file=addslashes(fread($fp,filesize($_POST[file])));