마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

mysql insert문을 update문으로 바꾸고싶습니다.

0 추천
이미지업로드를 하고있는데 인서트문을 업데이트 문으로 변경하고싶습니다...

<?php

$link=mysqli_connect("localhost","id","pw","테이블명");
$file_path = "uploads/";

$file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
  // replace $host,$username,$password,$dbname with real info

 
  mysqli_query($link,"INSERT INTO uploads (filename,path) VALUES ('".$_FILES['uploaded_file']['tmp_name']."','".$file_path."')");
  mysqli_close($link);

} else{
    echo "fail";
}

 ?>

ㅇ이코드를 업데이트문으로 변경하고싶습니다.

밑에코드는 제가해봣는데 자꾸 안되서ㅠㅠ도와주십쇼ㅠㅠ

<?php

$link=mysqli_connect("localhost","id","pw","테이블명");
$file_path = "uploads/";

$file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
  // replace $host,$username,$password,$dbname with real info
$filename = $_POST['filename'];
$path = $_POST['path'];
$no = $_POST['no'];

 
  mysqli_query($link,"update user set
  filename = '$filename',
  path = '$path'
  where no = '$no'");

  mysqli_close($link);

} else{
    echo "fail";
}

 ?>
신입생 (510 포인트) 님이 2016년 10월 18일 질문

1개의 답변

0 추천

업데이트를 하시려면 원하시는 레코드의 Primary Key값이 있어야 합니다. 아래 SQL 문의 where 절을 Primary Key 필드명과  값으로 대체해 주시면 됩니다.

UPDATE uploads SET

  filename = "'".$_FILES['uploaded_file']['tmp_name']."'"

, path = "'".$file_path."'"

where PK_FIELD_NAME = PK_VALUE

 

spark (227,530 포인트) 님이 2016년 10월 18일 답변
Parse error: syntax error, unexpected ''".$_FILES['' (T_CONSTANT_ENCAPSED_STRING) in /host/home2/kth8295/html/up.php on line 14 이런 에러가뜹니다...
14번라인 :
mysqli_query($link,"UPDATE user SET filename = "'".$_FILES['uploaded_file']['tmp_name']."'", path = "'".$file_path."'" where no ='$no'");
SQL문장을 변수에 먼저 넣고 어떤 문장이 나오는지 DB에서 직접 실행해 보세요. 아마도 파일명에 들어있는 특수문자 때문에 나는 에러같은데, 먼저 어떤 파일명이 넘어오는지 보시고, db에서 지원하지 않는다면 escape하셔야 합니다.
...