0

我的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);
?> 

我尝试了很多,但是当我执行它时,它什么也没给出,也没有在表中更新。

4

2 回答 2

3

这是您的代码的一个非常简单的工作示例,其中包含准备好的语句。

请注意查询上的询问标志和bind_param,s表示字符串和i整数,您可以在此处阅读更多信息

所以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
);
于 2013-06-15T12:41:14.143 回答
-1

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

$sql="INSERT INTO table1 (Fname, LName, Age) VALUES
    ('".$_POST['fname']."','".$_POST['lname']."',".$_POST['age'].")";
于 2013-06-15T12:13:18.870 回答