我有一个名为genre的表,它是一个音乐数据库表。该表包含两列,genre_id和genre_name。 Genre_id是主键,它设置为自动增量。我创建了一个表单来添加类型,如下所示:
<?php
if ( empty( $_POST ) ) {
?>
<form name="newaddgenre" action="newaddgenre.php" method="POST">
<label for 'genre'>Genre: </label>
<input type="text" name="genre_name"/>
<br/>
<button type="button" class="btn btn-primary">Submit</button>
</form>
<?php
} else {
$user = 'root';
$pass = 'mysql';
$db = new PDO ('mysql:host=localhost;dbname=musicdb', $user, $pass);
$form = $_POST;
$genre_name = $form[ 'genre_name' ];
$sql = "INSERT INTO genre (genre_name)
VALUES (genre_name)";
$query = $db->prepare( $sql );
$query->execute( array( ':genre_name'=>$genre_name) );
print_r( $_POST );
}
?>
当我在浏览器中打开它时,表单出现并且我可以添加一个类型,但是当我从类型中选择*时,唯一创建的是genre_id。表中没有genre_name。我究竟做错了什么?
免责声明:这是一项家庭作业,我对PHP没有太多经验,所以如果这段代码有明显错误,请原谅我。
答案 0 :(得分:0)
:genre_name
在您的SQL语句中没有定义。尝试这样点亮:
$sql = "INSERT INTO genre (genre_name)
VALUES (:genre_name)";
$query = $db->prepare( $sql );
$query->execute( array( ':genre_name'=>$genre_name) );