【问题标题】:I am unable to link my html forms to mysql table?我无法将我的 html 表单链接到 mysql 表?
【发布时间】:2016-05-03 06:16:15
【问题描述】:

我创建了一个名为“employee.php”的表单页面,用于接收用户数据。此外,我还有另一个名为 SQLConnectionProcess.php 的文件,其中包含将 employee.php 中的表单链接到 sql 表的代码。数据库的名称是“员工信息”,表的名称是“员工信息”。我正在使用 phpmyadmin 和 XAMPP 进行本地服务器测试。

employee.php 代码:

<html>
<body>

<form name="EmployeeDatabase" action="SQLConnectionProcess.php" method="post">

<link rel="stylesheet" href="css.css">

<h1>EMPLOYEE DATABASE</h1>

Employe Card NO: <input type="text" name="cardNO" ><br><br>
Employee NO: <input type="text" name="employeeNO" ><br><br>
Employee Name: <input type="text" name="employeename"><br><br>
Nationality: <input type="text" name="nationality"><br><br>
Profession: <input type="text" name="profession"><br><br>
DOB: <input type="text" name="DOB"><br><br>
DOJ: <input type="text" name="DOJ"><br><br>
DOA(VisitVisa): <input type="text" name="DOA"><br><br>
Company Code: <input type="text" name="companycode"><br><br>
Sponsor Code: <input type="text" name="sponsorcode"><br><br>
Visa Type: <input type="text" name="visatype"><br><br>
Status: <input type="text" name="status"><br><br>

<input type="submit" name="formSubmit" value="Submit">

</form>

</body>
</html>

SQLConnectionProcess.php 代码:

if(isset($_POST['formSubmit'])){
  $cardNO= $_POST['cardNO'];
  $employeeNO= $_POST['employeeNO'];
  $employeename= $_POST['employeename'];
  $nationality= $_POST['nationality'];
  $profession= $_POST['profession'];
  $DOB= $_POST['DOB'];
  $DOJ= $_POST['DOJ'];
  $DOA= $_POST['DOA'];
  $companycode = $_POST['companycode'];
  $sponsorcode= $_POST['sponsorcode'];
  $visatype= $_POST['visatype'];
  $status= $_POST['status'];
  mysqli_connect('localhost','root','password','employee information');
  $sql = sprintf("INSERT INTO table_employee info(Employee Card NO,Employee NO,Employee Name,Nationality,Profession,DOB,DOJ,DOA(VisitVisa),Company Code,Sponsor Code,Visa Type,Status) VALUES ('','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",$cardNO,$employeeNO,$employeename,$nationality,$profession,$DOB,$DOJ,$DOA,$companycode,$sponsorcode,$visatype,$status);
  mysqli_query($sql);

但是当我从employee.php 提交表单时,我被重定向到一个新页面,该页面显示SQLConnectionProcess.php 中的所有代码。我无法弄清楚编码错误。请帮帮我.....

【问题讨论】:

  • 添加行 ini_set("display_errors",1);在你的代码前面。并查看错误。
  • 看看你的apache配置文件...听起来你的php模块没有加载
  • 使用 标记也缺少“}”关闭 if。
  • 我添加了 来打开和关闭 SQLConnectionProcess.php 中的代码。那有必要吗?如果是,那么当我现在运行它时,我得到的错误是:“解析错误:语法错误,第 20 行 C:\xampp\htdocs\test1\SQLConnectionProcess.php 中的文件意外结束”
  • 是的,因为缺少 } 括号。 @哥谭

标签: php mysql


【解决方案1】:

使用下面的代码。

SQLConnectionProcess.php

<?php
if(isset($_POST['formSubmit'])){
  $cardNO= isset($_POST['cardNO']) ? $_POST['cardNO'] : 0;
  $employeeNO= isset($_POST['employeeNO']) ? $_POST['employeeNO'] : 0;
  $employeename= isset($_POST['employeename']) ? $_POST['employeename'] : "";
  $nationality= isset($_POST['nationality']) ? $_POST['nationality'] : "";
  $profession= isset($_POST['profession']) ? $_POST['profession'] : "";
  $DOB= isset($_POST['DOB']) ? $_POST['DOB'] : "";
  $DOJ= isset($_POST['DOJ']) ? $_POST['DOJ'] : "";
  $DOA= isset($_POST['DOA']) ? $_POST['DOA'] : "";
  $companycode = isset($_POST['companycode']) ? $_POST['companycode'] : 0;
  $sponsorcode= isset($_POST['sponsorcode']) ? $_POST['sponsorcode'] : 0;
  $visatype= isset($_POST['visatype']) ? $_POST['visatype'] : "";
  $status= isset($_POST['status']) ? $_POST['status'] : "";
  $con = mysqli_connect('localhost','root','','employee information');
  $sql = sprintf("INSERT INTO table_employee info(Employee Card NO,Employee NO,Employee Name,Nationality,Profession,DOB,DOJ,DOA(VisitVisa),Company Code,Sponsor Code,Visa Type,Status) VALUES ('','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",$cardNO,$employeeNO,$employeename,$nationality,$profession,$DOB,$DOJ,$DOA,$companycode,$sponsorcode,$visatype,$status);
  mysqli_query($con,$sql);
}
?>

【讨论】:

  • 再次感谢。我尝试过这个。它删除了访问被拒绝错误。仍然存在一个错误:警告:mysqli_query() 需要至少 2 个参数,1 个在第 18 行的 C:\xampp\htdocs\test1\SQLConnectionProcess.php 中给出
  • 是的,我用过。同样的错误:警告:mysqli_query() 需要至少 2 个参数,1 个在第 17 行的 C:\xampp\htdocs\test1\SQLConnectionProcess.php 中给出
  • 你改mysqli_query($sql);使用 mysqli_query($con,$sql);请检查此行。 @哥谭
  • 做到了。现在出现两个错误: 注意:未定义变量:第 17 行 C:\xampp\htdocs\test1\SQLConnectionProcess.php 中的 con。警告:mysqli_query() 期望参数 1 为 mysqli,在 C:\xampp\htdocs\test1 中给出 null \SQLConnectionProcess.php 第 17 行
  • 非常感谢您的帮助。但不幸的是,我仍然有错误提示:注意:未定义变量:C:\xampp\htdocs\test1\SQLConnectionProcess.php 中的 emplo‌​yeeNO 第 16 行注意:未定义变量:C:\xampp\htdocs\test1 中的赞助商代码\SQLConnectionProcess.php 第 16 行
【解决方案2】:
<?php 
if(isset($_POST['formSubmit'])){
echo '<pre>'.print_r($_POST,1).'</pre>';
}
?>

提交后检查是否正常

【讨论】:

    【解决方案3】:

    您的服务器没有解析 PHP 文件,而是提供“原始”文件。这是您需要解决的问题。如果您正在寻找这个问题,您可以在这里找到解决方案的建议:

    XAMPP not parsing PHP

    顺便说一句-这可能很明显,但是您有打开和关闭&lt;?php 标签吗?或者你发布的文本是整个文件吗

    编辑:你需要像这样传递连接:

    $connection = mysqli_connect('localhost','root','','employee information');
    $sql = "...";
    mysqli_query($connection, $sql);
    

    【讨论】:

    • 我添加了 来打开和关闭 SQLConnectionProcess.php 中的代码。我还添加了“}”来关闭 if 语句。现在我收到 2 个新错误: 警告:mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\xampp\htdocs\test1\SQLConnectionProcess.php第 16 行警告:mysqli_query() 至少需要 2 个参数,第 18 行的 C:\xampp\htdocs\test1\SQLConnectionProcess.php 中给出 1 个
    猜你喜欢
    • 1970-01-01
    • 2023-02-22
    • 1970-01-01
    • 2018-03-18
    • 2013-07-29
    • 2011-11-25
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    相关资源
    最近更新 更多