如何在MYSQL表中添加新列?

bis0qfac  于 2023-11-16  发布在  Mysql
关注(0)|答案(9)|浏览(115)

我试图使用PHP向我的MYSQL表添加一个新列。我不确定如何更改我的表,以便创建新列。在我的评估表中,我有:

assessmentid | q1 | q2 | q3 | q4 | q5

字符串
假设我有一个带有文本框的页面,我在文本框中输入q6,然后按下一个按钮,然后表格更新为:

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


我的代码:

<?php 
  mysql_query("ALTER TABLE `assessment` ADD newq INT(1) NOT NULL AFTER `q10`");
?>
  <form method="post" action="">
    <input type="text" name="newq" size="20">
    <input type="submit" name="submit" value="Submit">

8zzbczxx

8zzbczxx1#

您的表:

q1 | q2 | q3 | q4 | q5

字符串
你也可以做

ALTER TABLE yourtable ADD q6 VARCHAR( 255 ) after q5

fxnxkyjh

fxnxkyjh2#

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

字符串
您可以将VARCHAR( 255 ) NOT NULL更改为您想要的datatype

ecbunoof

ecbunoof3#

  • 可以在表的末尾添加新列

第一个月

  • 将列添加到表的开头

ALTER TABLE assessment ADD q6 VARCHAR( 255 ) FIRST

  • 在指定列旁边添加列

ALTER TABLE assessment ADD q6 VARCHAR( 255 ) after q5
和更多选项here

lndjwyie

lndjwyie4#

比如说:

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

字符串
我没有测试过,但应该可以工作。

jtoj6r0c

jtoj6r0c5#

您应该考虑规范化数据库以避免在运行时创建列。
制作3张table:
1.评估
1.问题

  1. assessment_question(columns assessmentId,questionId)
    将问题和评估放在各自的表格中,并通过assessment_question使用外键将它们链接在一起。
hwazgwia

hwazgwia6#

根据你的注解,看起来你只是添加了新列if: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...

字符串

prdp8dxp

prdp8dxp7#

对于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"
);}

字符串

9rnv2umw

9rnv2umw8#

ALTER TABLE `stor` ADD `buy_price` INT(20) NOT NULL ;

字符串

piztneat

piztneat9#

PHP代码中的ALTER TABLE的问题在这一行:
mysql_query(“ALTER TABLE assessment ADD newq INT(1)NOT NULL AFTER q10”);
它应该是在q5之后,因为在你的表样本中没有q10。所以,它变成了ALTER TABLE评估ADD newq INT(1)NOT NULL AFTER q5;

相关问题