我想知道是否有任何PHP / MySQL专家可以帮助我。我编写了一个PHP代码,我希望在数据库中将新列添加到我的表中。以下是代码:
<?php
// All the database connection codes here
$retro = mysqli_real_escape_string($con, $_POST['retro']);
$moon = mysqli_real_escape_string($con, $_POST['moon']);
$astronomicalunit = mysqli_real_escape_string($con, $_POST['astronomicalunit']);
$sql = "ALTER TABLE Planets
ADD (COLUMN 'RetrogradePrograde' VARCHAR(45),
COLUMN 'NumberOfMoons' VARCHAR(45),
COLUMN 'DistanceFromSun' SMALLINT(5));";
$sql = "UPDATE Planets
SET RetrogradePrograde = '$retro',
NumberOfMoons = '$moon',
DistanceFromSun = '$astronomicalunit';";
// all the mysqli connection failure notification here
// close mysqli connection
?>
但是当我尝试在浏览器上运行此程序时,我在“字段列表”中收到消息“错误:未知列'RetrogradePrograde'”当我刚创建它时,怎么会有UNKNOWN列?请帮忙。
答案 0 :(得分:2)
ALTER TABLE
命令中的列名称周围有错误的引号类型。它们应该是反引号,而不是单引号。或者你可以完全省略它们,因为你的列都不是保留字。另外,可选的单词COLUMN
应该在括号之外。
$sql = "ALTER TABLE Planets
ADD COLUMN (
`RetrogradePrograde` VARCHAR(45),
`NumberOfMoons` VARCHAR(45),
`DistanceFromSun` SMALLINT(5));";
请参阅documentation。
中的语法答案 1 :(得分:0)
从定义中删除列。试试这个: -
$sql = "ALTER TABLE Planets
ADD COLUMN(RetrogradePrograde VARCHAR(45),
NumberOfMoons VARCHAR(45),
DistanceFromSun SMALLINT(5));";
答案 2 :(得分:0)
创建表或更新它们时,不要对列使用单引号或双引号,否则会产生sql错误。试试这个
<?php
// All the database connection codes here
$retro = mysqli_real_escape_string($con, $_POST['retro']);
$moon = mysqli_real_escape_string($con, $_POST['moon']);
$astronomicalunit = mysqli_real_escape_string($con, $_POST['astronomicalunit']);
$sql = "ALTER TABLE Planets
ADD COLUMN(RetrogradePrograde VARCHAR(45),
NumberOfMoons VARCHAR(45),
DistanceFromSun SMALLINT(5))";
$sql = "UPDATE Planets
SET RetrogradePrograde = '$retro',
NumberOfMoons = '$moon',
DistanceFromSun = '$astronomicalunit'";
// all the mysqli connection failure notification here
// close mysqli connection
?>
希望这会有所帮助。