[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 개 만들기 :
- 평가
- 질문
- 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"
);}