mysql insert是不行的

时间:2016-12-14 00:07:14

标签: php mysql

我是PHP和MYSQL的初学者。这是我将数据添加到数据库的简单代码。它不起作用 connection.php(设置mysql连接变量)文件已经创建,并且可以正常使用其他文件和函数。在此处的代码不会将数据添加到数据库时,我没有收到任何错误 有人可以告诉我问题出在哪里吗?

<?php

if (isset($_POST['bookt']) & isset($_POST['type']) &           isset($_POST['publisher']) & isset($_POST['year']) & isset($_POST['class']) &  isset($_POST['subject'])) {

//set the values
$bookt= $_POST['bookt'];
$type= $_POST['type'];
$publ=$_POST['publisher'];
$year=$_POST['year'];
$class= $_POST['class'];
$subj= $_POST['subject'];

    //INSERTING A ROW
$add_query= "INSERT INTO books ('Book Title','Type','Publisher','Yearp', 'Class','Subject') 
VALUES ('$bookt','$type','$publ','&year','$class','$subj')";

 //query
$result=mysql_query($add_query);
if (!$result) {die("couldn't perform query".mysql_error());}
 if ($result) {echo " </ br> <p><script type='text/javascript'>alert('INSERT         SUCCESSFUL!!!');</script></p><br /><br /> insert id was ".mysql_insert_id();}
};

?>

2 个答案:

答案 0 :(得分:1)

如果您想在if语句中使用多个条件,请使用逻辑运算符&#34; &amp; &#34;。另外mysql_已经从PHP7中消失了很长时间。

答案 1 :(得分:1)

此代码存在许多重大问题。

首先,请don't use mysql_*; mysql_*函数已过时,deprecated且不安全。它们完全从PHP 7中删除。请改用MySQLiPDO

其次,布尔“和”运算符为&&,而不是&(按位“和”运算符)。

第三,它是$year,而不是&year

第四,将列名放在反引号中,而不是单引号('...'):

$add_query= "INSERT INTO books (`Book Title`,`Type`,`Publisher`,`Yearp`, `Class`,`Subject'`) 
VALUES ('$bookt','$type','$publ','$year','$class','$subj')";

单引号会导致查询失败。这就是您的查询根本不起作用的原因。

第五,您没有进行任何错误检查或数据验证。

第六,你对SQL injection持开放态度。您需要使用预准备语句,并且从不将用户输入直接放入SQL中。

可能会有更多问题,但这些都是重大问题。