我想知道是否有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'在'字段列表'"怎么可能有一个未知列,当我刚刚创建它?请帮助。
您在ALTER TABLE
命令的列名周围使用了错误类型的引号。它们应该是反引号,而不是单引号。或者您可以完全省略它们,因为您的列都不是保留字。另外,可选的单词COLUMN
应该在括号之外。
$sql = "ALTER TABLE Planets
ADD COLUMN (
`RetrogradePrograde` VARCHAR(45),
`NumberOfMoons` VARCHAR(45),
`DistanceFromSun` SMALLINT(5));";
从定义中删除该列。试试这个:-
$sql = "ALTER TABLE Planets
ADD COLUMN(RetrogradePrograde VARCHAR(45),
NumberOfMoons VARCHAR(45),
DistanceFromSun SMALLINT(5));";
在创建或更新表时,不要使用单引号或双引号,否则会导致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
?>