以php格式显示外键值,并通过下拉菜单将它们添加到表数据库

时间:2015-04-19 08:50:38

标签: php mysql forms foreign-keys

所以我正在做我的项目,我实际上停留在这个部分,我想从数据库中显示外键的值,并通过下拉菜单中的选择添加它们。这些值将作为另一个值的选择添加到新表中(听起来有点混合)。因此我设法在我的表单(外国约束)的下拉菜单中显示值,我可以选择它们,但是一旦我提交表格,我就会收到错误。

图书插入查询失败。您的SQL语法出错;查看与您的MySQL服务器版本相对应的手册,以便在“类别”附近使用正确的语法,$'bookclub','2015-04-19 10:31:09')'在第1行

我在一个页面中同时使用php和html,这让我觉得更容易,所以这是我的代码:

获取和选择外部约束的代码:

<div class='container'>
<label for='</select>' >Book Club: </label><br/>
<?php
include('include/databaseconnection.php'); 
$sql = "SELECT name FROM bookclubs";
$result = mysql_query($sql);
echo "<select name='bookclub'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['name'] . "'>" . $row['name'] . "</option>";
}
echo "</select>";
?>
</div>

向数据库插入值的代码:

<?php
//Php for record inserted text
//db connection
include('include/databaseconnection.php');
// Initializing variables
$title = '';
$author = '';
$category = '';
$bookclub = '';
$submit = 'submit';
if(isset($_POST['submit'])){
// if submit button is pressed
$title = $_POST['title'];
$author =$_POST ['author'];
$category =$_POST ['category'];
$bookclub = $_POST ['bookclub'];
$date = date('Y-m-d H:i:s');
if ($db_con == TRUE) {
$insertValue  = "INSERT INTO books VALUES ('$title','$author', $'category', $'bookclub', '$date')";
$queryInsert  = mysql_query($insertValue) or die ('Book Insertion Query Failed.'.mysql_error());
if (mysql_affected_rows() == 1) { echo "Record was successfully inserted";}} 
else { exit;}                                                         }
?>

我认为错误在于选择并输入新表的外键。 目前使用xammp和数据库是mysql服务器。 P.s是php的初学者,知道如何使用代码,但无法将其写下来

2 个答案:

答案 0 :(得分:0)

SQL请求中有一个拼写错误,即变量$insertValue,第三列$'category'应该是'$category',这甚至适用于您要插入的下一列({{ 1}})。

此外,这种向数据库的插入数据会导致SQL injection,为了您自己的安全,您应该在发布应用程序之前修复它。


最后 - 是专栏&#34; bookclub&#34;在表name的数据库主键中?如果没有,我宁愿使用书店的PK来识别bookclubs(在其价值中)。

答案 1 :(得分:0)

您的代码中存在错误

尝试$insertValue = "INSERT INTO books VALUES ('$title','$author', '$category', $bookclub', '$date')";

我也会尝试避免在标记中使用尖括号作为输出字符串,这只会让事情变得混乱。