使用php将数据插入表中

时间:2013-06-15 12:08:25

标签: php mysql database

我的html表单如下:

<html>
<body>
<form action="createconnection.php" method="post">

Firstname : <input type="text", name="fname"> </br>
Lastname : <input type="test" name="lname"> </br>
Age : <input type="text" name="age"></br>

<input type="submit">

</form>
</body>
</html>

和php文件: 表名和数据库名都可以。

<?php
// Create connection

$con=mysqli_connect('127.0.0.1:3306' ,'root','root','my_db');
echo "hi";
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$sql="INSERT INTO table1 (Fname, LName, Age)
VALUES
('$_POST[fname]','$_POST[lname]','$_POST[age]')";

if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
echo "1 record added";

mysqli_close($con);
?> 

我尝试了很多,但是当我执行它时,它没有提供任何内容,也没有更新表。

2 个答案:

答案 0 :(得分:3)

以下是使用预准备语句编写代码的一个非常简单的工作示例。

请注意查询上的询问符号,bind_params表示字符串,i表示整数,you can read more here

所以ssi意味着我们将收到2个字符串和1个整数条目。

<?php
// Your database info
$db_host = '';
$db_user = '';
$db_pass = '';
$db_name = '';

if (!empty($_POST))
{   
        $con = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
        if ($con->connect_error)
            die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());

        $sql = "INSERT INTO table1 (Fname, LName, Age) VALUES (?,?,?)";
        if (!$stmt = $con->prepare($sql))
            die('Query failed: (' . $con->errno . ') ' . $con->error);

        if (!$stmt->bind_param('ssi',$_POST['fname'],$_POST['lname'],$_POST['age']))
            die('Bind Param failed: (' . $con->errno . ') ' . $con->error);

        if (!$stmt->execute())
                die('Insert Error ' . $con->error);

        echo "Record added";
        $stmt->close();
        $con->close();
}
?>
<html>
<body>
<form action="createconnection.php" method="post">

Firstname : <input type="text", name="fname"> </br>
Lastname : <input type="test" name="lname"> </br>
Age : <input type="text" name="age"></br>

<input type="submit">

</form>
</body>
</html>

以下是使用的SQL表:

CREATE TABLE IF NOT EXISTS `table1` (
  `Fname` varchar(50) NOT NULL,
  `LName` varchar(50) NOT NULL,
  `Age` int(3) NOT NULL
);

答案 1 :(得分:0)

你应该像这样修改你的sql(变量应该连接在一起)

$sql="INSERT INTO table1 (Fname, LName, Age) VALUES
    ('".$_POST['fname']."','".$_POST['lname']."',".$_POST['age'].")";