Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php将数据插入表中_Php_Mysql_Database - Fatal编程技术网

使用php将数据插入表中

使用php将数据插入表中,php,mysql,database,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

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

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


下面是一个非常简单的代码示例,其中包含准备好的语句

注意查询上的询问符号和
bind_参数
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>

你真的应该通读:)你正在使用
mysqli
,这很好,但是为什么不使用准备好的语句呢?除了sql注入之外,你应该在你的
$\u POST
字符串语句中的
$\sql
是LName还是LName?使用echo或print打印查询,然后从浏览器复制打印的查询,并使用phpmyadmin或any在mysql中进行检查。是否有任何原因导致否决?我没有否决,但请在$\u帖子中编辑以获得单引号。嗯,如果我不得不否决你,我会说,这是因为1)你没有做任何与在问题中所做的不同的事情,2)你没有使用事先准备好的陈述,因为他在使用mysqli@Prix导致真正错误的问题中缺少连接。我同意我们可以做很多改进,但这不是当前的问题。@harrybvp他不需要连接,因为他使用双引号而不是单引号为他的变量+1加引号,表示某人确实花时间显示准备好的语句,而不是告诉他们准备语句。感谢Prix的努力,但这会重定向到createConnection.php,并导致connect_error)死亡('connect error('.mysqli_connect_errno())。mysqli_connect_error())$stmt=$con->prepare(“插入表1(Fname,LName,Age)值(?,?)”$stmt->bind_param('ssi'、$_POST['fname']、$_POST['lname']、$_POST['age']);如果(!$stmt->execute())死亡('Insert Error'.$con->Error);echo“添加1条记录”$stmt->close()$con->close();}?>浏览器出错@编程疯狂你能更具体地描述一下你是如何使用这段代码的吗?你能复制并粘贴准确的错误吗?@SableFoste谢谢,OP使用mysqli而不是mysql的事实让我很高兴能帮助他。我的意思是50%甚至更多,尽管所有的警告和一切都很糟糕,还是继续使用mysql吧。@Programming\u疯狂你确定文件是正确的,并且像
http://yoursite.com/createconnection.php
?在我看来,这是将文件内容打印到浏览器,而不是错误消息
<?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>
CREATE TABLE IF NOT EXISTS `table1` (
  `Fname` varchar(50) NOT NULL,
  `LName` varchar(50) NOT NULL,
  `Age` int(3) NOT NULL
);