mysql update问题
后台
$iii= 'images/'.$_FILES["file"]["name"];
$sql="UPDATE detail SET dafenleidetail = '$_POST[detail1]',xiaofenleidetail = '$_POST[detail2]',btdetail = '$_POST[detail3]',tupiandetail = '$iii',miaoshudetail = '$_POST[detail5]' WHERE id='$_POST[hidid]'";
我现在想 不浏览图片 update不会覆盖原来tupiandetail的内容
回复讨论(解决方案)
表单上传后,$_FILES["file"]["name"]是上传前的文件名,而实际上这个文件被放入了临时目录,你需要copy或者move到指定位置,甚至根据需要重命名。
$sql="UPDATE detail SET dafenleidetail = '".$_POST[detail1]."',xiaofenleidetail = '".$_POST[detail2]."',btdetail = '".$_POST[detail3]."',tupiandetail = '$iii',miaoshudetail = '".$_POST[detail5]."' WHERE id='".$_POST[hidid]."'";
有下标的数据数据引用,最好用.来连接。
我晕 。。。我现在浏览图片可以更新 我想不浏览图片 不要覆盖啊tupiandetail 这个字段的内容
if($_FILES["file"]["error"] == 0) {
//只对成功桑穿的图片进行处理
$iii= 'images/'.$_FILES["file"]["name"];
$sql="UPDATE detail SET dafenleidetail = '$_POST[detail1]',xiaofenleidetail = '$_POST[detail2]',btdetail = '$_POST[detail3]',tupiandetail = '$iii',miaoshudetail = '$_POST[detail5]' WHERE id='$_POST[hidid]'";
....
}
$str = "";
if($_FILES["file"]['error'] == 0)
{
//文件保存文件等操作
$iii= 'images/'.$_FILES["file"]["name"];
$str = ",tupiandetail = '$iii'";
}
$sql="UPDATE detail SET dafenleidetail = '$_POST[detail1]',xiaofenleidetail = '$_POST[detail2]',btdetail = '$_POST[detail3]'".$str.",miaoshudetail = '$_POST[detail5]' WHERE id='$_POST[hidid]'";
$str = "";
if($_FILES["file"]['error'] == 0)
{
//文件保存文件等操作
$iii= 'images/'.$_FILES["file"]["name"];
$str = ",tupiandetail = '$iii'";
}
$sql="UPDATE detail SET dafenleidetail = '$_POST[detai……
难道你不知道 空字符串 也会覆盖啊
if($_FILES["file"]["error"] == 0) {
//只对成功桑穿的图片进行处理
$iii= 'images/'.$_FILES["file"]["name"];
$sql="UPDATE detail SET dafenleidetail = '$_POST[detail1]',xiaofenleidetail = '$_POST[detail2]',……
那不成功呢?
引用 4 楼 jzh2004 的回复:$str = "";
if($_FILES["file"]['error'] == 0)
{
//文件保存文件等操作
$iii= 'images/'.$_FILES["file"]["name"];
$str = ",tupiandetail = '$iii'";
}
$sql="UPDATE detail SE……
覆盖什么?你把SQL语句打印出来不就知道我写的对不对了。
引用 5 楼 gg86965921gg 的回复:
引用 4 楼 jzh2004 的回复:$str = "";
if($_FILES["file"]['error'] == 0)
{
//文件保存文件等操作
$iii= 'images/'.$_FILES["file"]["name"];
$str = ",tupiandetail = '$iii'";
}
$sql="UPD……
如果没浏览图片 $str = "";
那个$str update字段内容 内容会变成空 原来的内容没有了
引用 7 楼 jzh2004 的回复:引用 5 楼 gg86965921gg 的回复:
引用 4 楼 jzh2004 的回复:$str = "";
if($_FILES["file"]['error'] == 0)
{
//文件保存文件等操作
$iii= 'images/'.$_FILES["file"]["name"];
$str = ",tupiandetail = '$iii……
你打印出来不就知道了,字段没改变怎么会变空,实践出真理啊
引用 8 楼 gg86965921gg 的回复:
引用 7 楼 jzh2004 的回复:引用 5 楼 gg86965921gg 的回复:
引用 4 楼 jzh2004 的回复:$str = "";
if($_FILES["file"]['error'] == 0)
{
//文件保存文件等操作
$iii= 'images/'.$_FILES["file"]["name"];
$st……
你的逻辑不是 当没有浏览图片 $str=""; 么 你update 不是覆盖了。。
那不成功呢?
不正式你需要的吗?
上传不成功就不修改?
引用 9 楼 jzh2004 的回复:引用 8 楼 gg86965921gg 的回复:
引用 7 楼 jzh2004 的回复:引用 5 楼 gg86965921gg 的回复:
引用 4 楼 jzh2004 的回复:$str = "";
if($_FILES["file"]['error'] == 0)
{
//文件保存文件等操作
$iii= 'images……
如果不明白我的逻辑,就听我的打印出SQL语句看看结果,然后在想想哪里搞错了。
引用 10 楼 gg86965921gg 的回复:
引用 9 楼 jzh2004 的回复:引用 8 楼 gg86965921gg 的回复:
引用 7 楼 jzh2004 的回复:引用 5 楼 gg86965921gg 的回复:
引用 4 楼 jzh2004 的回复:$str = "";
if($_FILES["file"]['error'] == 0)
{
//文件保存文件等操作
……
$str = "";
$sql="UPDATE detail SET dafenleidetail = '$_POST[detail1]',xiaofenleidetail = '$_POST[detail2]',btdetail = '$_POST[detail3]'".$str.",miaoshudetail = '$_POST[detail5]' WHERE id='$_POST[hidid]'";
我运行了啊 就是把原来的字段内容覆盖了啊
引用 12 楼 jzh2004 的回复:引用 10 楼 gg86965921gg 的回复:
引用 9 楼 jzh2004 的回复:引用 8 楼 gg86965921gg 的回复:
引用 7 楼 jzh2004 的回复:引用 5 楼 gg86965921gg 的回复:
引用 4 楼 jzh2004 的回复:$str = "";
if($_FILES["file"]['error'] == 0……
你这个SQL语句里根本没有tupiandetail这个字段,怎么会把原来内容覆盖
有啊 我不用这个方法了。。。
$str = "";
$sql="UPDATE detail SET dafenleidetail = '$_POST[detail1]',xiaofenleidetail = '$_POST[detail2]',btdetail = '$_POST[detail3]'".$str.",miaoshudetail = '$_POST[detail5]' WHERE id='$_POST[hidid]'";
我运行了啊 就是把原来的字段内容覆盖了啊
有啊 我不用这个方法了。。。
--------------------
你不是说你运行了吗,上面的SQL语句里哪里有tupiandetail字段?你还能说有?
那你的代码 图片上传成功不会覆盖了。。
那你的代码 图片上传成功不会覆盖了。。
所以说你根本没有运行过啊,图片上传成功,就执行if里面的语句,$str变量里就有值了,也就会改变了