从Php注册表中不保存Mysql中的日期

问题描述 投票:-1回答:4

我无法从Php注册表单中保存Mysql Db中的出生日期,我做错了什么?

  1. Check.php $month = $_POST['month']; $day = $_POST['day']; $year = $_POST['year']; mysql_query("INSERT INTO users(FirstName,LastName,Phone,DOB)VALUES ( $FirstName + "','" + $LastName + "','" + $Phone + "','" + $Year + "-" + $Month + "-" + $Day + ')") or die("".mysql_error()); echo "Successful Registration!"; } ?>
  2. 报名表格 注册表格h3 {font-family:Calibri; font-size:22pt; font-style:normal; font-weight:bold;颜色:青蓝; text-align:center; text-decoration:underline} table {font-family:Calibri;白颜色; font-size:11pt; font-style:normal;文本对齐:; background-color:SlateBlue;边界崩溃:崩溃; border:2px solid navy} table.inner {border:0px} <body> <form method="post" action="check.php" enctype="multipart/form-data"> <table width="300" border="0"<table align="center" cellpadding = "10"> <tr> <td>FirstName:</td> <td><input type="text" name="FirstName"></td> </tr> <tr> <td>LastName:</td> <td><input type="text" name="LastName"></td> <tr> <td>Phone:</td> <td><input type="double" name="Phone"></td> <!----- Date Of Birth --------------------------------------------------------> <tr> <td>DATE OF BIRTH</td> <td> <select name="Birthday_day" id="Birthday_Day"> <option value="-1">Day:</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> <option value="19">19</option> <option value="20">20</option> <option value="21">21</option> <option value="22">22</option> <option value="23">23</option> <option value="24">24</option> <option value="25">25</option> <option value="26">26</option> <option value="27">27</option> <option value="28">28</option> <option value="29">29</option> <option value="30">30</option> <option value="31">31</option> </select> <select id="Birthday_Month" name="Birthday_Month"> <option value="-1">Month:</option> <option value="January">Jan</option> <option value="February">Feb</option> <option value="March">Mar</option> <option value="April">Apr</option> <option value="May">May</option> <option value="June">Jun</option> <option value="July">Jul</option> <option value="August">Aug</option> <option value="September">Sep</option> <option value="October">Oct</option> <option value="November">Nov</option> <option value="December">Dec</option> </select> <select name="Birthday_Year" id="Birthday_Year"> <option value="-1">Year:</option> <option value="1996">1996</option> <option value="1995">1995</option> <option value="1994">1994</option> <option value="1993">1993</option> <option value="1992">1992</option> <option value="1991">1991</option> <option value="1990">1990</option> <option value="1989">1989</option> <option value="1988">1988</option> <option value="1987">1987</option> <option value="1986">1986</option> <option value="1985">1985</option> <option value="1984">1984</option> <option value="1983">1983</option> <option value="1982">1982</option> <option value="1981">1981</option> <option value="1980">1980</option> <option value="1979">1979</option> <option value="1978">1978</option> <option value="1977">1977</option> <option value="1976">1976</option> <option value="1975">1975</option> <option value="1974">1974</option> <option value="1973">1973</option> <option value="1972">1972</option> <option value="1971">1971</option> <option value="1970">1970</option> <option value="1969">1969</option> <option value="1968">1968</option> <option value="1967">1967</option> <option value="1966">1966</option> <option value="1965">1965</option> <option value="1964">1964</option> <option value="1963">1963</option> <option value="1962">1962</option> <option value="1961">1961</option> <option value="1960">1960</option> <option value="1959">1959</option> <option value="1958">1958</option> <option value="1997">1957</option> <option value="1956">1956</option> <option value="1955">1955</option> <option value="1954">1954</option> <option value="1953">1953</option> <option value="1952">1952</option> <option value="1951">1951</option> <option value="1950">1950</option> <option value="1949">1949</option> <option value="1948">1948</option> <option value="1947">1947</option> <option value="1946">1946</option> <option value="1945">1945</option> <option value="1944">1944</option> <option value="1943">1943</option> <option value="1942">1942</option> <option value="1941">1941</option> <option value="1940">1940</option> <option value="1939">1939</option> <option value="1938">1938</option> <option value="1937">1937</option> <option value="1936">1936</option> <option value="1935">1935</option> <option value="1934">1934</option> <option value="1933">1933</option> <option value="1932">1932</option> <option value="1931">1931</option> <option value="1930">1930</option> <option value="1929">1929</option> <option value="1928">1928</option> <option value="1927">1927</option> <option value="1926">1926</option> <option value="1925">1925</option> <option value="1924">1924</option> <option value="1923">1923</option> <option value="1922">1922</option> <option value="1921">1921</option> <option value="1920">1920</option> <option value="1919">1919</option> <option value="1918">1918</option> <option value="1917">1917</option> <option value="1916">1916</option> <option value="1915">1915</option> <option value="1914">1914</option> <option value="1913">1913</option> <option value="1912">1912</option> <option value="1911">1911</option> <option value="1910">1910</option> </select> </td> </tr> </tr> <span style="size:10%;color:#FF0000"><?php if(isset($_GET["pass"])) { echo $_GET["pass"]; } ?></span> <tr> <td>&nbsp;</td> <td><input type="submit" value="Submit" name="registration" /></td> </tr> </table> </form>
php mysql
4个回答
0
投票

你在mysql查询中连接错误了。

$FirstName + "','" 

以上是错的。

使用它如下。

'". $FirstName ."',

编辑

$date = $year."-".$Month."-".$Day;

INSERT INTO users 
    (FirstName,LastName,Phone,DOB)
VALUES
( '". $FirstName ."','". $LastName ."','". $Phone ."','". $date ."')

0
投票

Mysql查询应该是格式化的

mysql_query("INSERT INTO users(FirstName,LastName,Phone,DOB)VALUES ( '".$FirstName."','". $LastName . "','" . $Phone . "','" . $Year . "-" . $Month + "-" . $Day . '")");

0
投票

正如其他人所说,为什么不使用PDO或MySQLi?

您的代码编写起来会更简单,并且您的代码可以随着其他较新版本的PHP(MySQL功能从PHP5.5弃用)而维持,例如:

<?php

    $month = $_POST['month']; $day = $_POST['day']; $year = $_POST['year']; $dob = $_SESSION['dob'];
    $_SESSION['dob'] = $day . "-" . $month . "-" . $year;

    $stmt = $pdoconnect->prepare('INSERT INTO users(FirstName,LastName,Phone,DOB) VALUES (:firstname, :lastname, :phone, :dob)')
    $stmt->execute(array(
        'firstname' => $FirstName,
        'lastname' => $LastName,
        'phone' => $Phone,
        'dob'=> $dob
    ));

    echo "Successful Registration!"; 

?>

我提供了一个使用session简化DOB的解决方案。

编辑(添加如何使用pdo_mysql):

// $DNS contain host (mysql:host=localhost by default), the database name and MySQL port (port=3606 by default).
$dns = 'mysql:host=localhost;dbname=beathost_cms;port=3606';
// $user --> MySQL USER
$user = 'root';
// $pass --> MySQL PASSWORD
$pass = 'root*';
try {

            $pdoconnect = new PDO($dns, $user, $pass);
            $pdoconnect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

        } catch (PDOException $e) {
            die ('An error occured with MySQL: ' . $e->getMessage());
        }

-1
投票

你应该

  • 获取正确的POST-vars !!!!
  • 使用点符号进行字符串连接
  • 做一个正确的报价
  • 处理varnames中的案例($ day不是$ Day)
  • 不要将未经过滤的$ _GET或$ _POST变量放入查询字符串中
  • 不要使用mysql_函数,不推荐使用它们

这个查询应该做你想要的没有错误:

$month = $_POST['Birthday_Month']; 
$day = $_POST['Birthday_day']; 
$year = $_POST['Birthday_Year']; 

$date = $year . "-" . $month . "-" . $day;

$query = "INSERT INTO users (FirstName,LastName,Phone,DOB) VALUES ( '" . $FirstName . "','". $LastName . "','" . $Phone . "','" . $date . "')";

mysql_query($query) or die(mysql_error());

编辑:我看到你试图获取错误的POST-vars!你获取了$ _POST ['day'],但你需要获取$ _POST ['Birthday_day'],这是你的选择字段的名称

© www.soinside.com 2019 - 2024. All rights reserved.