我试图上传图片到MySQL,当我尝试使用这段代码,它似乎只是插入数据库,但没有图像文件名上传到我的服务器,我可以知道什么地方出错上传图片到MySQL PHP
<form method="post" action="">
<?php
include ("setting/connect.php");
$g = mysql_query("select max(id) from abc");
while($id=mysql_fetch_array($g))
{
?>
<input type="text" name="id" value="<?php echo $id[0]+1; ?>" hidden/>
<?php }
?>
<div class="form-group">
<label>Image</label>
<input name="image" type="file">
</div>
<div class="form-group input-group">
<span class="input-group-addon">Title</span>
<input name="title" type="text" class="form-control" placeholder="">
</div>
<center><input class="btn btn-primary" type="submit" name="cmdadd" value="ADD" />
<button type="button" class="btn btn-danger">BACK</button></center>
</div>
<!-- /.panel-body -->
</form>
我的PHP:从这个
<?php
$id = $_POST['id'];
$title= trim($_POST['title']);
$path = "uploads/";
$tmp_name = $_FILES['image']['tmp_name'];
$name = $_FILES['image']['name'];
if(isset($_POST['cmdadd'])){
if(empty($id)||empty($title))
{
echo "<center>Error!</center>";
}
if($_FILES["image"]["error"] > 0)
{
echo "<font size = '5'><font color=\"#e31919\">Error: NO CHOSEN FILE <br />";
echo"<p><font size = '5'><font color=\"#e31919\">INSERT TO DATABASE FAILED";
}
else{
move_uploaded_file($tmp_name,$path.$name);
$file="uploads/".$name;
include "setting/connect.php";
mysql_query("SET NAMES 'UTF8'");
$i = mysql_query("insert into abc values ('".$id."','".$file."','".$title."')");
if($i==true){
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=danhsachtindang.php">';
}
//if($i==true){
//header('Location:index.php');
//exit;
//mysql_close();
//}
}
}
?>
结果:当我尝试上传例如,picture.jpg,在mysql表,它仅在列出来“化身/”并没有任何上传到服务器。
你得到最后一个ID的方式,然后增加它是不好的。如果这个脚本是由两个客户端同时运行的,你会得到ID冲突。一个客户端将获得最大ID并将其增加,然后当他们在窗体上工作时,另一个用户将获得相同的ID和相同的递增值。第一个用户的表单将会成功,第二个用户将拥有相同的ID,并且您将尝试插入重复的主键,从而导致数据库失败。 – 2014-09-12 14:45:04
您可以使用“PDO :: lastInsertId”这是获取最后一个ID的更好方法,但如果您不需要最后一个ID,请让它自动递增。 – 2014-09-12 14:45:54
**不再支持** mysql_ *'函数,它们是[**官方不推荐使用的**](https://wiki.php.net/rfc/mysql_deprecation),**不再维护**并且将来会[**删除**](http://php.net/manual/en/function.mysql-connect.php#warning)。您应该使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli)更新您的代码,以确保您的项目未来的功能。 – Kermit 2014-09-12 14:49:53