如何使用PHP向mySQL添加行?

时间:2015-04-04 17:54:31

标签: php mysql

我正在尝试添加网站的“管理员”部分。现在我正在研究一个部分,为我的MySQL数据库添加一个新行。

第一个文件是我的admin.php:

<html>
...
<body>
<form action="add.php" method="post">
    <input type="text" name="order" />
    <input type="text" name="newstatus" />
    <input type="submit" value="Add" />

</form>

</body>
</html>

我的目标是在新行中添加2个数据(表格现在只有2列)。

然后,我有我的add.php文件:

<?
//declare my connection variables - I'll move these to a secure method later
mysql_connect($servername, $username, $password) or die (mysql_error ());

// Select database
mysql_select_db($dbname) or die(mysql_error());

// The SQL statement is built

$sql="INSERT INTO $tblname(id, status)VALUES('$order', '$newstatus')";
$result=mysql_query($sql);

if($result){
    echo "Successful";
    echo "<BR>";
    echo "<a href='admin.php'>Back to main page</a>";
}

else {
    echo mysqli_errno($this->db_link);
}
?>

<?php
// close connection
mysql_close();
?>

任何时候我输入任何数据(表中已有的数据都不重复),它会给我一个错误。如果我完全清除所有数据的表格,它将输入一次。我收到重复的密钥错误,但我的密钥应该是“订单”,每次输入时都是唯一的。

建议?

2 个答案:

答案 0 :(得分:2)

如果您实际插入新行,则不应自行填写ID,而应将其设置为数据库中的AUTO_INCREMENT。然后,你有这样的形式:

<form action="add.php" method="post">
    <input type="text" name="newstatus" />
    <input type="submit" value="Add" />
</form>

您的PHP代码如下:

$newstatus = mysql_real_escape_string($_POST['newstatus']); // note the usage of $_POST variable
$sql="INSERT INTO `$tbl_name` (`status`) VALUES ('$newstatus')";
$result = mysql_query($sql) or die('Failed executing query: '.mysql_error());
可以使用以下查询在AUTO_INCREMENT中设置

phpMyAdmin

ALTER TABLE `WorkOrders` MODIFY `id` INTEGER NOT NULL AUTO_INCREMENT;

最后,请勿使用mysql_*个函数,they are deprecated

答案 1 :(得分:0)

我猜你的表的'id'字段是主键。如果是这种情况,则不能有两行具有相同的标识符。

通过您的变量名称​​ newstatus ,在我看来,您似乎正在尝试更新订单的状态;是这样的吗?如果是,则应使用以下格式的UPDATE SQL查询:

UPDATE table SET status='somestatus' WHERE id=someid