无法将记录插入mysql

时间:2015-03-08 23:01:10

标签: php mysql

我试图添加新记录,但错误显示"无法插入"。下面是我使用的代码(假设我已经在下面声明了这些变量)。

$sql6 = "SELECT * FROM records WHERE serialno='$serialno'";

//checking if the item is available in db
$check =  $this->db->query($sql6) ;
$count_row = $check->num_rows;

//if the item is not in db then insert to the table
if ($count_row == 0){
    $poster = "Admin";
    $sql6 = "INSERT INTO records SET itemname='$itemname', itemdesc='$itemdesc', brand='$brand', serialno='$serialno', nostock='$nostock', price='$price', onsale='$onsale', $poster='$poster', thedate='date('Y-m-d')'";
    $result = mysqli_query($this->db,$sql6) or die(mysqli_connect_errno()."Data cannot inserted");
    return $result;
}
else { return false;} 

我的数据库结构是

id (int, autoincrement)itemname (varchar), itemdesc (varchar), brand (varchar), serialno (varchar), nostock (int), price (varchar), onsale (tinytext), poster (tinytext), thedate (date)

我收到错误说#34;无法插入"。有人对我的代码有什么想法或线索吗?任何帮助将不胜感激。谢谢!

PS:我试图显示所有帖子数据,例如($ itemname,$ itemdesc等)由echo $ itemname,$ itemdesc等提供。它确实显示正确,因此我的查询可能存在问题。

1 个答案:

答案 0 :(得分:0)

INSERT INTO records SET itemname='$itemname', itemdesc='$itemdesc', brand='$brand', serialno='$serialno', nostock='$nostock', price='$price', onsale='$onsale', $poster='$poster', thedate=''

将此布局更改为:

INSERT INTO records (itemname,itemdesc, brand, serialno,nostock, price,onsale,poster, thedate) VALUES ($itemname,$itemdesc ...the values... ".date('Y-m-d').", )

这是流程形式:

INSERT <tablename> (<columns1>,<columns2>) VALUES ($value1,$value2)

此代码将在指定的表中插入一行新数据,并在成功时返回true。

您可能还需要更改名为$poster的列。这可能是不正确的,列名不应该是列值 - 不是语法中断,而是坏方法。

第2步

仍然无效 - 请获取一些详细的反馈,并替换

die(mysqli_connect_errno()."Data cannot inserted");

使用

die($this->db->error." :: Data cannot be inserted");

这将为您提供来自MySQL对象的更多有用的反馈。