【问题标题】:Inserting data from html to php to mysql database将数据从 html 插入 php 到 mysql 数据库
【发布时间】:2011-12-20 11:40:36
【问题描述】:

我已经完成了我的研究,但没有发现任何针对我的问题的具体内容 我有一个 HTML 表单,要求提供数据,然后是一个 php 脚本,假设将数据放入 mysql 数据库中

当我在本地主机上尝试时,我没有收到任何错误 但是当我检查 phpmyadmin 时,没有新数据

html:

<html>
<head>

<form action="insert.php" method="post">
ID: <input type="text" name="ID"><br>
Family ID: <input type="text" name="Family_ID"><br>
First Name: <input type="text" name="First_Name"><br>
Last Name: <input type="text" name="Last_Name"><br>
Gender: <input type="text" name="Gender"><br>
Birthday: <input type="text" name="Birthday"><br>
Birthplace: <input type="text" name="Birthplace"><br>
Father ID: <input type="text" name="Father_ID"><br>
Mother ID: <input type="text" name="Mother_ID"><br>
Maiden Name: <input type="text" name="Maiden_Name"><br>
Mariage ID: <input type="text" name="Mariage_ID"><br>
Deathdate: <input type="text" name="Deathdate"><br>
Deathplace: <input type="text" name="Deathplace"><br>
Grave Location: <input type="text" name="Grave_Location"><br>
Email: <input type="text" name="Email"><br>
Phone: <input type="text" name="Phone"><br>
Address: <input type="text" name="Adress"><br>
Bio: <input type="text" name="Bio"><br>
Studies: <input type="text" name="Travail"><br>
Travail: <input type="text" name="Travail"><br>
Photo: <input type="text" name="Photo"><br>
Fete: <input type="text" name="Fete"><br>
<input type="Submit">

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

php:

$username='root';
$password='121395';
$database='genealogy';
mysql_connect("localhost",$username,$password);
@mysql_select_db($database) or die( 'Unable to select database');
echo "Connected to MySQL";

$ID=mysql_real_escape_string($_POST['ID']);
$Family_ID=mysql_real_escape_string($_POST['Family_ID']);
$First_Name=mysql_real_escape_string($_POST['First_Name']);
$Last_Name=mysql_real_escape_string($_POST['Last_Name']);
$Gender=mysql_real_escape_string($_POST['Gender']);
$Birthday=mysql_real_escape_string($_POST['Birthday']);
$Birthplace=mysql_real_escape_string($_POST['Birthplace']);
$Father_ID=mysql_real_escape_string($_POST['Father_ID']);
$Mother_ID=mysql_real_escape_string($_POST['Mother_ID']);
$Maiden_Name=mysql_real_escape_string($_POST['Maiden_Name']);
$Mariage_ID=mysql_real_escape_string($_POST['Mariage_ID']);
$Deathdate=mysql_real_escape_string($_POST['Deathdate']);
$Deathplace=mysql_real_escape_string($_POST['Deathplace']);
$Grave_Location=mysql_real_escape_string($_POST['Grave_Location']);
$Email=mysql_real_escape_string($_POST['Email']);
$Phone=mysql_real_escape_string($_POST['Phone']);
$Address=mysql_real_escape_string($_POST['Adress']);
$Bio=mysql_real_escape_string($_POST['Bio']);
$Travail=mysql_real_escape_string($_POST['Travail']);
$Photo=mysql_real_escape_string($_POST['Photo']);
$Fete=mysql_real_escape_string($_POST['Fete']);


$query = "INSERT INTO bouan (ID, Family_ID, First_Name, Last_Name, Gender, Birthday, 
Birthplace, Father_ID, Mother_ID, Maiden_Name, Mariage_ID,Deathdate, Deatchplace,
Grave_Location, Email, Phone, Adress, Bio, Travail, Photo, Fete) VALUES 
('$ID','$Family_ID','$First_Name','$Last_Name','$Gender','$Birthday','$Birthplace',
'$Father_ID','$Mother_ID','$Maiden_Name','$Mariage_ID','$Deathdate','$Deathplace',
'$Grave_Location','$Email','$Phone','$Address','$Bio','$Travail','$Photo','$Fete')";

mysql_query($query) or die ("Error updating database");

mysql_error();
mysql_close();

我得到的回报是:

Connected to MySQLError更新数据库

怎么了? (我已经完成了我的研究,超过 2 天仅供参考) 对不起,我是新手,帮不上忙

【问题讨论】:

  • 这段代码有很多错误和不安全之处,我请求您立即将其离线并运行一些“保存到 mysql”教程,以及一些基本的 PHP/MySQL 安全阅读。
  • 不要忘记 PHP 中有数组是有原因的,它们可以让你的生活更轻松。更少的代码 = 更少的错误。
  • 您的帖子质量相当低,因为您在此处发布之前没有进行研究。正如建议的那样,您应该先阅读一些教程。祝你好运!
  • 这还不在线,我知道安全风险,我只是想学习基础知识,经过 2 天的尝试找出问题所在,我终于决定在这里发帖感谢链接,我没想到会受到如此严厉的欢迎......
  • 顺便说一句,我是按照教程做的...

标签: php mysql html database forms


【解决方案1】:

你应该可以

  • mysql_query提供真实查询
  • 在将数据提供给 sql 之前对其进行清理
  • 当你想将它嵌入到一个字符串中时使用{$_POST['whatever']}
  • 检查mysql_query的返回值
  • 学一两件事。

【讨论】:

    【解决方案2】:

    您的第一种方法看起来不错,但出于安全原因,请获取已发布的变量,如下所示 $ID=mysql_real_escape_string($_POST['ID']); mysql_real_escape_string() 方法将删除不需要的字符并使其安全。

    最后尝试使用 echo 或 print 语句打印您正在执行的查询。

    echo $query;
    

    在你的 phpmyadmin 上执行结果。 Phpmyadmin 会告诉您 mysql 查询中的错误,并按照这些说明更改您的查询。

    可以通过在每行执行后打印结果来完成调试,只要您觉得有问题。

    【讨论】:

    • 感谢您的直截了当的回应,不要因为我是初学者而对我大喊大叫
    • 我为什么要对你大吼大叫?我们有这个社区可以互相帮助。即使我和你一样是一个学习者。您可以提出任何类型的问题,但对问题的良好描述将帮助您获得更好的解决方案。享受... :)
    【解决方案3】:

    使用mysql_error() 接收最后一个错误。我还看到您的查询中存在潜在错误:

    '`$ID`','`$Family_ID`','`$First_Name`' -- you may try to remove ` sign
    

    【讨论】:

      【解决方案4】:

      尝试做这两件事,首先将 value 属性添加到所有输入元素 例如)

      <input type="text" name="Family_ID" value="">
      

      因为如果您在没有值属性的文本框中发送空白值,它将不会进入 $_POST 变量

      尝试添加字段名称,以便您可以使用值跟踪地图并删除 ` 从你的领域和价值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-17
        • 1970-01-01
        • 1970-01-01
        • 2013-10-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多