[php] MYSQL 테이블에 새 열을 추가하는 방법은 무엇입니까?

PHP를 사용하여 MYSQL 테이블에 새 열을 추가하려고합니다. 새 열이 생성되도록 테이블을 변경하는 방법을 잘 모르겠습니다. 내 평가 테이블에는 다음이 있습니다.

assessmentid | q1 | q2 | q3 | q4 | q5 

텍스트 상자가있는 페이지가 있고 텍스트 상자에 입력하고 q6버튼을 누르면 표가 다음과 같이 업데이트됩니다.

assessmentid | q1 | q2 | q3 | q4 | q5 | q6

내 코드 :

<?php 
include 'core/init.php';
include 'core/admininit.php';
include 'includes/overall/overall_header.php'; 
adminprotect_page();
include 'includes/adminmenu.php'; 
?>      
<?php

mysql_query("ALTER TABLE `assessment` ADD newq INT(1) NOT NULL AFTER `q10`");

?>
<h1>Input Career Name</h1>

    <form method="post" action="">

      Career Name
      <input type="text" name="newq" size="20">

     <input type="submit"
      name="submit" value="Submit">

</body>
</html>



답변

당신의 테이블 :

q1 | q2 | q3 | q4 | q5

당신은 또한 할 수 있습니다

ALTER TABLE yourtable ADD q6 VARCHAR( 255 ) after q5


답변

 $table  = 'your table name';
 $column = 'q6'
 $add = mysql_query("ALTER TABLE $table ADD $column VARCHAR( 255 ) NOT NULL");

당신은 변경할 수 있습니다 VARCHAR( 255 ) NOT NULL무엇을 적으로 datatype당신이 원하는.


답변

  • 표 끝에 새 열을 추가 할 수 있습니다.

    ALTER TABLE assessment ADD q6 VARCHAR( 255 )

  • 테이블 시작 부분에 열 추가

    ALTER TABLE assessment ADD q6 VARCHAR( 255 ) FIRST

  • 지정된 열 옆에 열 추가

    ALTER TABLE assessment ADD q6 VARCHAR( 255 ) after q5

여기에 더 많은 옵션


답변

다음과 같은 것 :

$db = mysqli_connect("localhost", "user", "password", "database");
$name = $db->mysqli_real_escape_string($name);
$query = 'ALTER TABLE assesment ADD ' . $name . ' TINYINT NOT NULL DEFAULT \'0\'';
if($db->query($query)) {
    echo "It worked";
}

테스트하지는 않았지만 작동해야합니다.


답변

귀하의 의견에 따르면 다음과 같은 경우에만 새 열을 추가하는 것처럼 보입니다 mysql_query("SELECT * FROM assessment");. 그것은 아마도 당신이 원하는 것이 아닐 것입니다. ‘!’를 제거해보십시오. 첫 번째 ‘if’문에서 $ sql 앞에 있습니다. 따라서 코드는 다음과 같습니다.

$sql=mysql_query("SELECT * FROM assessment");
if ($sql) {
 mysql_query("ALTER TABLE assessment ADD q6 INT(1) NOT NULL AFTER q5");
 echo 'Q6 created';
}else...


답변

런타임에 열이 생성되지 않도록 데이터베이스 정규화를 고려해야합니다.

테이블 3 개 만들기 :

  1. 평가
  2. 질문
  3. Assessment_question (평가 ID, 질문 ID 열)

질문과 평가를 각각의 테이블에 넣고 외래 키를 사용하여 evaluation_question을 통해 함께 연결합니다.


답변

WORDPRESS :

global $wpdb;


$your_table  = $wpdb->prefix. 'My_Table_Name';
$your_column =                'My_Column_Name';

if (!in_array($your_column, $wpdb->get_col( "DESC " . $your_table, 0 ) )){  $result= $wpdb->query(
    "ALTER     TABLE $your_table     ADD $your_column     VARCHAR(100)     CHARACTER SET utf8     NOT NULL     "  //you can add positioning phraze: "AFTER My_another_column"
);}