Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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 My函数成功运行,但数据库显示一行,其中包含零或空格_Php_Mysql_Database_Web Applications_Crud - Fatal编程技术网

Php My函数成功运行,但数据库显示一行,其中包含零或空格

Php My函数成功运行,但数据库显示一行,其中包含零或空格,php,mysql,database,web-applications,crud,Php,Mysql,Database,Web Applications,Crud,我正在设计一个crud应用程序,将存储数据存储在数据库中。使用php、mySQL(在XAMPP的帮助下)。不过,我一直遇到这个问题,我在表单上单击“提交”,函数似乎运行成功(我在php页面上看到一条成功消息),但当我查看实际数据库时,无论单击“提交”时表单中有什么内容,该行都会将3个字段(前1个和后2个)填充为“0”。然后其他两列根本没有任何内容 这是我的表单代码: <div id="newprojform"> <fieldset><legend>Crea

我正在设计一个crud应用程序,将存储数据存储在数据库中。使用php、mySQL(在XAMPP的帮助下)。不过,我一直遇到这个问题,我在表单上单击“提交”,函数似乎运行成功(我在php页面上看到一条成功消息),但当我查看实际数据库时,无论单击“提交”时表单中有什么内容,该行都会将3个字段(前1个和后2个)填充为“0”。然后其他两列根本没有任何内容

这是我的表单代码:

<div id="newprojform">
  <fieldset><legend>Create New Project</legend>
    <form action='projectadded.php' name="addnewproject"  onsubmit="return(validate());">
      <div id="newprojfields"><br />
        Project Name: 
        <div class="field">
          <input type="text" name="projname" size="50">
        </div>
        <br /><br />
        Customer: 
        <div class="field">
          <input type="text" name="custname" size="50">
        </div>
        <br /> <br />
        Move ID: 
        <div class="field">
          <input type ="text" name="moveID" size="50"> 
        </div>
        <br /><br />
        <label for="unit">Unit of Measurement: </label>
        <div class="field" id="uomdd">
          <select id="unit" name="unit">
            <option value="Select">Select</option>
            <option value="CWT">CWT</option>
            <option value="Vault">Vault</option>
            <option value="SqFt">SqFt</option>
            <option value="Pallet">Pallet</option>
            <option value="Piececount">Piece Count</option>
          </select>
        </div>
        <br /><br />
        Cost Per Unit: 
        <div class="field">
          <input type="text" name="cost" size="50">
        </div>
        <br /> <br />
        <input type="submit" value="Add Project" id="submit"><br />
      </div>
  </form></fieldset>

</div> 

创建新项目

项目名称:

客户:

移动ID:

计量单位: 挑选 CWT 拱顶 平方英尺 托盘 计件

单位成本:


这里是php

<?php 
$con=mysqli_connect("localhost","root","", "storagelog");  
if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sql="INSERT INTO newproject (moveid, projectname, customername, UoM, PPU)
VALUES
('$_POST[moveID]','$_POST[projname]','$_POST[custname]','$_POST[unit]','$_POST[cost]')";

if(!mysqli_query($con,$sql))
{
    die ('Error: ' . mysqli_error($con));
}
echo "1 record added";

mysqli_close($con);
?>

问题在于您没有将POST指定为表单中的方法,而是试图从$\u POST变量中读取表单变量。有关表单默认值的信息,请参见此线程。要解决此问题,您只需将表单更改为:

<form action='projectadded.php' name="addnewproject"  onsubmit="return(validate());" method="POST">


这里还有一些您应该更改的内容,例如在将输入放入数据库之前对其进行清理,但这些并不是问题的根源。

问题在于您没有将POST指定为表单中的方法,而是尝试从$\u POST变量中读取表单变量。有关表单默认值的信息,请参见此线程。要解决此问题,您只需将表单更改为:

<form action='projectadded.php' name="addnewproject"  onsubmit="return(validate());" method="POST">


在这里,您还应该做一些其他的更改,比如在将输入放入数据库之前对其进行清理,但这些并不是问题的根源。

所以,首先要做的是。我不建议在处理数据库时使用未过滤的$\u POST和$\u GET变量(当然是在生产环境中)

其次,在使用表单元素时,必须指定是使用post方法还是get方法:

<form action="location_of_file.php" method="POST">
有时候,SQL可能很敏感


哈哈,该死的。。。肖恩克击败了我。如果我们的建议有效,请选择他的答案,因为他是第一个发布答案的人。

所以首先要做的是。我不建议在处理数据库时使用未过滤的$\u POST和$\u GET变量(当然是在生产环境中)

其次,在使用表单元素时,必须指定是使用post方法还是get方法:

<form action="location_of_file.php" method="POST">
有时候,SQL可能很敏感


哈哈,该死的。。。肖恩克击败了我。如果我们建议的工作,选择他的答案,因为他是第一次发布它。

< P>为将来的引用(除了其他答案中的优秀建议),你应该考虑打印$SQL来查看你的实际插入语句看起来是什么样子。您会立即看到您的值是空字符串,并且知道如何追踪$\u POST,以了解它为什么是空的 您正在使用mysqli。。。您不使用参数化查询,甚至不尝试清理查询输入的任何原因???您正在使用mysqli。。。您不使用参数化查询,甚至不尝试清理查询输入的任何原因???