-1

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

  1. 检查.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; 字体大小:22pt;字体样式:正常;字体粗细:粗体;颜色:板岩蓝;文本对齐:居中;文字装饰:下划线}表{字体系列:Calibri;白颜色; 字体大小:11pt;字体样式:正常;文本对齐:;背景颜色:SlateBlue;边框折叠:折叠;边框:2px 纯海军蓝} 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>
    

4

4 回答 4

0

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

您的代码将更易于编码,并且您的代码可以随着时间的推移与其他较新版本的 PHP 一起维护(MySQL FUNCTION ARE DEPRECATED FROM 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!"; 

?>

我包括一个使用会话简化 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());
        }
于 2013-09-06T08:26:57.637 回答
0

您在连接 mysql 查询时做错了。

$FirstName + "','" 

以上是错误的。

如下使用它。

'". $FirstName ."',

编辑

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

INSERT INTO users 
    (FirstName,LastName,Phone,DOB)
VALUES
( '". $FirstName ."','". $LastName ."','". $Phone ."','". $date ."')
于 2013-09-06T08:06:34.000 回答
0

Mysql 查询应该是这样的格式

mysql_query("INSERT INTO users(FirstName,LastName,Phone,DOB)VALUES ( '".$FirstName."','". $LastName . "','" . $Phone . "','" . $Year . "-" . $Month + "-" . $Day . '")");
于 2013-09-06T08:10:33.970 回答
-1

你应该

  • 获取正确的 POST 变量!!!!
  • 使用点号进行字符串连接
  • 做一个正确的报价
  • 处理 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 变量!您获取了 $_POST['day'] 但您需要获取 $_POST['Birthday_day'] 这是您的选择字段的名称

于 2013-09-06T08:09:14.633 回答