web-dev-qa-db-ja.com

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>
83
Steven Trainor

あなたのテーブル:

q1 | q2 | q3 | q4 | q5

あなたもできる

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

VARCHAR( 255 ) NOT NULLdatatypeにしたいものに変更することができます。

7
Abdullah Salma
  • テーブルの最後に新しい列を追加することができます

    ALTER TABLE assessment ADD q6 VARCHAR( 255 )

  • テーブルの先頭に列を追加

    ALTER TABLE assessment ADD q6 VARCHAR( 255 ) FIRST

  • 指定した列の隣に列を追加

    ALTER TABLE assessment ADD q6 VARCHAR( 255 ) after q5

その他のオプション ここ

6
amarnath

何かのようなもの:

$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";
}

テストしていませんが、動作するはずです。

3
Glitch Desire

あなたのコメントに基づいて、それはあなたが新しい列を追加するだけのようです:mysql_query("SELECT * FROM assessment");はfalseを返します。それはおそらくあなたが望んでいたことではありません。 「!」を削除してみてください最初の '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...
0
Ryan Epp

実行時に列を作成しないように、データベースの正規化を検討する必要があります。

3つのテーブルを作ります。

  1. 評価
  2. 質問
  3. assessment_question(カラムassessmentId、questionId)

それぞれの表に質問と評価を入れ、外部キーを使ってassessment_questionを通してそれらを一緒にリンクしてください。

0
Erik van Velzen
ALTER TABLE `stor` ADD `buy_price` INT(20) NOT NULL ;
0
Shinwar ismail

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"
);}
0
T.Todua