【问题标题】:form didnt working with mysql表单无法与 mysql 一起使用
【发布时间】:2017-02-14 06:59:19
【问题描述】:

这是html

<form action="addadd.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
    <p>
        First Name<br>
        <label for="firstname"></label>
        <input type="text" name="firstname" id="firstname" />
    </p>
    <p>
        Last Name<br>
        <label for="lastname"></label>
        <input type="text" name="lastname" id="lastname" />
    </p>
    <p>
        Mobile<br>
        <label for="mobile"></label>
        <input type="text" name="mobile" id="mobile" />
    </p>
    <p>
        Email<br>
        <label for="email"></label>
        <input type="text" name="email" id="email" />
    </p>
    <p>
        <input type="submit" name="button" id="button" value="Submit" /> 
        <input type="reset" name="button3" id="button3" value="Reset" />
    </p>
</form>

这是php

数据库连接

<?php
$con = mysql_connect("localhost","root","");
if(!$con)
{
die("connection to database failed".mysql_error());
}
$dataselect = mysql_select_db("qoot",$con);
if(!$dataselect)
{
die("Database namelist not selected".mysql_error());
}
?>


<?php 
    $unm = $_SESSION['name']; 
    $fname=$_POST['firstname']; 
    $lname=$_POST['lastname']; 
    $ema=$_POST['email'];
    $mob=$_POST['mobile'];
?>



<?php 
    $qry=mysql_query("INSERT INTO address( firstname, lastname, mobile, email)VALUES('$fname',$lname','$ema','$mob')", $con);
?>

现在的问题是,这并没有向我的数据库中插入任何内容。
我还能尝试什么来检查哪里出了问题? 更新了数据库连接详情

【问题讨论】:

  • “不工作”是什么意思?有什么错误吗?
  • 它没有将数据保存到mysql
  • 首先:停止使用mysql api,改用mysqli(mysql改进)或PDO。第二:永远不要将未转义的用户输入(get、post 等)放入这样的查询中,使用准备好的语句或转义值!第三:显示错误或解释不工作的地方,同时显示表单的html代码。
  • 查询中未转义的数据会导致 sql 注入攻击,这是一件坏事。 mysql api 已被弃用,甚至不存在于较新版本的 php 中。
  • 请编辑问题并在那里添加代码,而不是新的 cmets。

标签: php mysql forms


【解决方案1】:

将您的表名 address 放在反引号中

使用mysqli_

  <?php
/start session
session_start();
//establish connection
$con = mysqli_connect("localhost","root","","qoot");
if(!$con)
{
die("connection to database failed".mysqli_error($con));
}
     //read the values from form
    $unm = $_SESSION['name']; 
    $fname=$_POST['firstname']; 
    $lname=$_POST['lastname']; 
    $ema=$_POST['email'];
    $mob=$_POST['mobile'];
?>



<?php 
   //insert to database
    $qry=mysqli_query($con,"INSERT INTO `address` ( firstname, lastname, mobile, email)VALUES('$fname',$lname','$ema','$mob')") or die(mysqli_error($con));
?>

P.S 我会说你有mysql injection 的风险,请在此处查看How can I prevent SQL injection in PHP?。你真的应该使用准备好的语句来避免任何风险。

【讨论】:

  • 没有错误,但数据库中没有更新。
  • 在插入查询之前回显名字、姓氏、电子邮件和手机的值
  • 现在我正在使用我的 sqli,但现在警告 mysqli_query() 至少需要 2 个参数,1 在第 64 行的 C:\wamp\www\qoot\addadd.php 中给出
  • 它需要一个数据库连接字符串和您的查询。例如 mysqli_query ($db_connect, $sql);
  • 对不起,它不工作。我认为插入数据有问题
猜你喜欢
  • 1970-01-01
  • 2013-05-23
  • 1970-01-01
  • 1970-01-01
  • 2021-04-18
  • 1970-01-01
  • 2015-07-28
  • 2016-07-06
  • 1970-01-01
相关资源
最近更新 更多