2014-11-02 2 views
0

ppt를 업로드 할 수 있도록 각 슬라이드마다 PDF로 분할됩니다. 나는 이미 ppt 분할을 수행하기 위해 쉘 스크립트를 만들었지 만 작동하지만 내 SQL 쿼리로 내 데이터베이스를 업데이트하는 데 문제가 있습니다. 나는 그것을 한순간에 작동 시켰고 갑자기 작동을 멈추었는데, 내가 무엇을 망쳐 놓았는지 확실하지 않았지만 나에게 잘 보였다. 여기에 코드의 일부는 다음과 같습니다mysql 쿼리가 더 이상 작동하지 않습니다.

if(isset($_POST['title'])){ 

$admin_id = $_SESSION['user_id']; 
$name = $_POST['title']; 

if(isset($_FILES["file"]["name"]) && !empty($_FILES["file"]["name"])){ 
    $fname = $_FILES["file"]["name"]; 
    $tmp_name = $_FILES["file"]["tmp_name"]; 
    $dir = "powerpoints/".$name; 
    $ispdf = "1"; 
    echo $tmp_name."----------------".$dir; 

    echo $admin_id.':'.$name.':'.$dir.':'.$ispdf; 

    $query = mysql_query("INSERT INTO problem (admin_id,topic,image,is_pdf) VALUES ('$admin_id','$name','$dir','$ispdf')"); 
    //$output = shell_exec('mkdir '.$dir); 
    //echo $output; 
    if($query && move_uploaded_file($tmp_name, $dir.$fname)){ 
     //$cmd = 'importppt.sh '.str_replace(".pdf", "", $name); 
     $message = "Powerpoint uploaded"; 
    }elseif($query){ 
     $message = "move_uploaded_file() Failed"; 
    }else{ 
     $message = "Database Error"; 
    }` 

내가 스크립트 데이터베이스 오류가 "ELSEIF ($ 쿼리)" 도 내 데이터베이스에 더 많은 열이 있다는 것을 유의 뛰어 넘었 의미 인쇄되어 사용하려고하는 내가 업데이트하지 않습니다. 그러나 작동을 멈추기 전에 새로운 항목에 대해 비워 두어야합니다. 모든 이름은 정확하게 입력 데이터 내 echo 문

+1

테스트에 대한 쿼리)'제대로 인쇄 된 쿼리에 투입되고 - 그 말씀 드리죠 너 무슨 일이야. 사이드 노트 : 새로운 코드에는'mysql _ *()'을 사용하지 말라 : 그것은 더 이상 사용되지 않는다. 대신에'mysqli _ *()'또는'PDO'를 사용하십시오. –

+0

내가 처음으로 잘못 본 것은 입력 내용을 살균하지 않는다는 것입니다. 따라서'$ name'에'''가 있으면 쿼리가 중단됩니다. mysql_query ("INSERT ...") 또는 die (mysql_error());를 사용하면 정확히 무슨 일이 일어나는지 알 수있다. – CodeBird

+0

네, 언젠가 mysqli를 변경해야합니다. 아직 havent 할 기회가있었습니다. 메아리 mysql_error() 팁 주셔서 고마워, 다시 열쇠 '문제'에 대한 중복 항목으로 제공됩니다. 메신저 그것은 열 문제가 테이블 문제의 이름이 아니라는 것을 전제로하지만, 유일한 키는 id 열이고 자동은 –

답변

0

업데이트 당신은`mysql_error를을 (에코해야

error_reporting(-1) ; 
$query = mysql_query("INSERT INTO problem (admin_id,topic,image,is_pdf) VALUES 
('admin_id','name','dir','ispdf')"); 

$temp = false; 
if(move_uploaded_file($tmp_name, $dir.$fname)){ 
    $temp = true; 
} 

if($query && $temp){ 
    $message = "Powerpoint uploaded,"; 
} 
else if($query){ 
    $message = "Problem Find In your TITLE, Or Duplicate Data, OR Use mySqli"; 
}else if(!$temp){ 
     $message = "Problem Find In your mov directory, Check manually"; 
} 
else{ 
     $message = "Hope This Else Will not work"; 
} 
+0

, 그냥 여기 당신의 MySQL의 오류 ... –

+0

인쇄를 해결하는 방법을 잘 모릅니다! '문제'키에 중복 항목 ''이 (가) 있습니다. 나는 나의 "문제"가 유일하게 설정되어 있으며, 이미 거기에있는 나의 데이터를 망치지 않고이 속성을 제거하는 방법을 찾으려고한다는 것을 발견했다. –

+0

을 couldnt로 스크롤 읽어을 –

관련 문제