2011-10-19 2 views
0

특정 데이터베이스에서 테이블의 이름을 바꾸려고합니다. 내가 아래에 주어진 쿼리를 시도했지만 동일한 오류 메시지를 보여줍니다. 나는 내 실수를 이해할 수 없다.테이블 이름 바꾸기

쿼리

1 일 :

<?php 
$id = $_POST['id']; 
$department = $_POST['department']; 
$dept_id = $_POST['dept_id']; 
$olddept_id = $_SESSION['olddept_id']; 

if(isset($_POST['submit'])) 
{ 
$order = "UPDATE department SET department='$_POST[department]', dept_id='$_POST[dept_id]' WHERE id='$_POST[id]'"; 
mysql_query($order) or die (mysql_error()); 
mysql_query("RENAME TABLE $olddept_id TO $dept_id;") or die (mysql_error()); 

} 

2 일 :

<?php 
$id = $_POST['id']; 
$department = $_POST['department']; 
$dept_id = $_POST['dept_id']; 
$olddept_id = $_SESSION['olddept_id']; 

if(isset($_POST['submit'])) 
{ 
$order = "UPDATE department SET department='$_POST[department]', dept_id='$_POST[dept_id]' WHERE id='$_POST[id]'"; 
mysql_query($order) or die (mysql_error()); 
mysql_query("ALTER TABLE $olddept_id RENAME $dept_id;") or die (mysql_error()); 

} 

오류 메시지는 다음과 같습니다 "당신은 당신의 SQL 구문에 오류가 있습니다 ; r에 대한 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. 1 행에서 'TO CSEE'근처에서 사용하는 구문 "

편집하려는 테이블 이름은"department "라는 테이블에도 저장됩니다. 이 작업은 성공적이지만 테이블의 이름은 변경되지 않습니다.

감사합니다.

+1

당신이 몇 가지 예제 데이터를 표시 할 수 CSEE TO

RENAME reservedword : 나는 당신이 역 따옴표로 이스케이프해야 할 것 즉, 원래 테이블 이름을 예약어를 사용하는 것 같은데요? 그리고 SQL 인젝션에 대한 쿼리를 보호해야합니다. –

+2

사물의 사용자 끝에서 테이블의 이름을 변경해서는 안됩니다. 데이터를 다르게 구성하십시오. – Brad

+0

기본 테이블은 "부서"입니다. 그 테이블에 CSE, EEE 또는 ME와 같은 부서 이름을 저장하면 CSE, EEE 및 ME라는 동일한 세 가지 유형의 다른 테이블을 만들고 싶습니다. @ Pekka, 나는 그것의 초심자이다, 나는 다른 어떤 아이디어도 귀중하지 않다. : (@ 브래드 – webrider

답변

0

해당 검색어에 의해 생성 된 정확한 SQL을 보여줍니다.