pdo와 mysql을 사용하고 이미 기존 테이블에 열을 추가하는 방법을 알고 있지만 입력 필드에서 값을 사용하여 시도하면 변수 $의 이름 .... 열로 추가됩니다.
I 열로서 입력 필드의 값을 추가해야 할 코드는 다음과 같다 :PHP의 입력 필드에서 기존 테이블에 열 추가
public function insertAlterTable($colName)
{
$this->pdo = $this->connectMySql();
$query = 'ALTER TABLE nbs_events ADD $colName CHAR(5) NULL DEFAULT "nee"';
$stmt = $this->pdo->prepare($query);
if(!$stmt->execute()){
return false;
}
$this->pdo = null;
return true;
}
이 코드 시도 캐치 블록 안에 싸여있다.
또한 클래스 내부에 있습니다. 나는 기존의 테이블에 컬럼으로 입력 필드 colname
에서 값을 추가 할 수있는 방법
insertAlterTable($_POST['colname']);
:에서 FrontPage에서
내가 좋아하는이 코드를 사용합니다.
도와주세요.
나는 다음과 같이 코드를 업데이트했습니다, 그래서 나를 위해 작동 : 작은 따옴표를 사용하는 경우 PHP에서
public function insertAlterTable($colName)
{
$colName = mysql_real_escape_string($colName);
$this->pdo = $this->connectMySql();
$query = "ALTER TABLE nbs_events ADD $colName CHAR(5) NULL DEFAULT \"nee\"";
$stmt = $this->pdo->prepare($query);
if(!$stmt->execute()){
return false;
}
$this->pdo = null;
return true;
}
http://www.php.net/manual/en/language .types.string.php –
여기에'$ _POST [ 'colname'] 변수를 사용해서는 안됩니다. 이것은 누군가가 원하는대로 SQL을 주입 할 수있는 큰 보안 허점입니다. – acme
@acme 나는 prepare 문이이를 처리 할 것이라고 생각했기 때문에 mysql_real_escape_string을 사용할 필요가 없다. – PDOProgrammer