// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= 使用 PHP 创建数据库驱动的应用程序
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: 使用 PHP 创建数据库驱动的应用程序 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, 使用 PHP 创建数据库驱动的应用程序

= 第 6 课：在数据库中添加新的愿望
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: 第 6 课：在数据库中添加新的愿望 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, 第 6 课：在数据库中添加新的愿望



在本课中，将使用以下两个功能扩展应用程序功能：


要实现该功能，请编辑  `editWishList.php`  文件并创建新文件  `editWish.php` 。

image::images/page-flow-diagram-l6.png[]

当前文档是link:wish-list-tutorial-main-page.html[+在适用于 PHP 的 NetBeans IDE 中创建 CRUD 应用程序+]教程的一部分。


[[_application_source_code_from_the_previous_lesson]]
== 来自上一课的应用程序源代码

MySQL 用户：单击link:https://netbeans.org/files/documents/4/1931/lesson5.zip[+此处+]以下载源代码，该代码反映了在完成上一课之后的项目状态。

Oracle 数据库用户：单击link:https://netbeans.org/projects/www/downloads/download/php%252Foracle-lesson5.zip[+此处+]以下载源代码，该代码反映了在完成上一课之后的项目状态。

[[_submitting_a_new_wish]]
== 提交新的愿望

用户可使用以下步骤提交新的愿望：

1. 用户进行登录，切换到  `editWishList.php`  页，然后按 "Add Wish" 按钮。 `editWish.php`  页打开，并显示 HTML 窗体。
2. 用户在 HTML 窗体中输入愿望说明，可能还会输入他/她希望实现愿望的日期，然后按 "Save Changes" 按钮。
3. 如果提交窗体而未输入愿望说明，用户将返回到窗体进行重试。如果用户提交了截止日期而没有提供说明，在重新加载窗体时，将重新显示该日期。

要为用户实现此过程，请在应用程序中添加以下功能：

* <<add-wish-ui-elements,用户界面组件>>，包含添加愿望的 HTML 窗体以及  `editWishList.php ` 中将用户重定向到该窗体的按钮。
* 在提交不完整的窗体时<<_returning_to_the_front_index_php_page,重新显示截止日期>>的代码。


[[add-wish-ui-elements]]
=== 添加用户界面组件

*添加功能以添加新的愿望：*

1. 实现 "Add Wish" 按钮。在  `editWishList.php`  文件的 PHP 块下面添加以下 HTML 代码：

[source,xml]
----

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <form name="addNewWish" action="editWish.php">            
            <input type="submit" value="Add Wish">
        </form>
    </body>
</html>
----

*注：*您可以忽略来自 HTML 验证器的警告。

窗体包含  `submit`  类型的 "Add Wish" 输入字段。该字段实现 "Add Wish" 按钮。当用户单击 "Add Wish" 时，他们将重定向到  `editWish.php`  页。由于没有通过该窗体传输任何数据，因此，不会使用服务器请求方法。

2. 在 addNewWish 窗体上面添加一个表以显示许愿者的现有愿望。代码类似于  `wishlist.php` 。

*对于 MySQL 数据库*：


[source,php]
----

<table border="black">
    <tr>
        <th>Item</th>
        <th>Due Date</th>
    </tr>
    <?php
    $result = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID);
    while ($row = mysqli_fetch_array($result)) {
        echo "<tr><td>" . htmlentities($row['description']) . "</td>";
        echo "<td>" . htmlentities($row['due_date']) . "</td></tr>\n";
    }
    mysqli_free_result($result);
    ?>
</table>
----

*对于 Oracle 数据库：*


[source,php]
----

<table border="black">
    <tr>
        <th>Item</th>
        <th>Due Date</th>
    </tr>
    <?php
    $stid = WishDB::getInstance()->get_wishes_by_wisher_id($wisherID);
    while ($row = oci_fetch_array($stid)) {
        echo "<tr><td>" . htmlentities($row['DESCRIPTION']) . "</td>";
        echo "<td>" . htmlentities($row['DUE_DATE']) . "</td></tr>\n";
    }
    oci_free_statement($stid);
    ?>
</table>
----
3. 在 "Source Files"（源文件）文件夹中创建  `editWish.php`  PHP 文件。
4. 在  `editWish.php`  中，实现 "Add Wish" 窗体。在 <? php ?> 块下键入或粘贴以下代码：

[source,xml]
----

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <form name="editWish" action="editWish.php" method="POST">
            Describe your wish: <input type="text" name="wish"  value="" /><br/>
            When do you want to get it? <input type="text" name="dueDate" value=""/><br/>
            <input type="submit" name="saveWish" value="Save Changes"/>
            <input type="submit" name="back" value="Back to the List"/>
        </form>
    </body>
</html> 
----

"Add Wish" 窗体包含：

* 两个空文本字段，用于输入愿望说明和截止日期。
* 在输入字段旁边输出的文本。
* 表示 "Save Changes" 按钮的  `submit`  字段
* 表示 "Back to the List" 按钮的  `submit`  字段，用于返回到  `editWishList.php`  页

在按 "Add Wish" 按钮后，窗体将通过请求方法 POST 将输入的数据提交到同一页面，即  `editWish.php` 。

[[_redisplaying_the_due_date_after_an_unsuccessful_submission]]
=== 在提交失败后重新显示截止日期

如果用户在 "Add Wish" 窗体中未填写说明，则会显示一条错误消息，并且用户会返回到  `editWish.php`  页。当用户返回到  `editWish.php`  时，"Add Wish" 窗体应显示  `dueDate`  值（如果已输入）。在当前的窗体实现中，这两个字段始终为空。要保留输入的值，您需要将新愿望数据保存到数组中。该数组包含两个名为  `description`  和  `due_date`  的元素。然后，您需要更改 "Add Wish" 窗体，使其能够从数组中检索  `dueDate`  字段值。

*注：*未输入说明时，重新加载输入窗体的代码包含在<<_verifying_the_wisher_s_logon,用于验证数据并将其输入到数据库的代码>>中。本部分未介绍该代码。本部分中的代码仅保留  `dueDate`  值，以便在重新加载窗体时显示该值。

*在用户提交输入窗体失败后重新显示该窗体：*

1. 在  `editWish.php`  的 HTML <body> 元素内，紧靠输入窗体上面键入或粘贴以下代码块：

[source,php]
----

<?php
if ($_SERVER['REQUEST_METHOD'] == "POST")
    $wish = array("description" => $_POST['wish'],
                        "due_date" => $_POST['dueDate']);
else
    $wish = array("description" => "",
                        "due_date" => "");
?>
----

该代码检查使用哪个请求服务器方法传输数据，并创建一个名为 $wish 的数组。如果该方法是 POST（表示在尝试保存具有空说明的愿望失败后显示输入窗体），则  `description`  和  `due_date`  元素接受通过 POST 传输的值。

如果该方法不是 POST（表示在重定向窗体后第一次显示输入窗体），则  `editWishList.php`  页以及  `description`  和  `due_date`  元素均为空。

*注：*在这两种情况下，说明均为空。唯一的区别是  `dueDate` 。

2. 更新 "Add Wish" 窗体，以便从  `$wish`  数组中检索其输入字段的值。将 "Add Wish" 窗体中的行：

[source,php]
----

Describe your wish: <input type="text" name="wish"  value="" /><br/>
When do you want to get it? <input type="text" name="dueDate" value=""/><br/>
----
替换为：

[source,php]
----

Describe your wish: <input type="text" name="wish"  value="<?php echo $wish['description'];?>" /><br/>
When do you want to get it? <input type="text" name="dueDate" value="<?php echo $wish['due_date']; ?>"/><br/>
----

[[_verifying_the_wisher_s_logon]]
== 验证许愿者的登录

在  `editWish.php`  文件中，在文件顶部的 <? php ?> 块中输入以下会话处理代码：


[source,php]
----

session_start();
if (!array_key_exists("user", $_SESSION)) {
    header('Location: index.php');
    exit;
}
----

该代码将会：

* 打开 $_SESSION 数组以检索数据。
* 验证 $_SESSION 数组是否包含具有标识符 "user" 的元素。
* 如果检查失败（表示用户未登录），则将应用程序重定向到主页 index.php 并取消 PHP 处理。

要检查会话处理是否正常工作，请从 IDE 中运行 editWish.php 文件。index.php 页打开，因为没有通过会话将用户传输到 editWish.page。


[[insert-new-wish]]
== 在数据库中插入新的愿望

在用户提交新的愿望后，应用程序需要将愿望添加到“愿望”数据库中。要实现该功能，请在应用程序中添加以下代码：

* 向  `db.php`  的  `WishDB`  类中添加另外两个辅助函数。
* 一个函数将新记录添加到 wishes 表中。
* 另一个函数将日期转换为 MySQL 数据库服务器支持的格式。
* 在  `editWish.php`  中添加代码，以使用  `WishDB`  中的新辅助函数在数据库中输入新的愿望。


[[add-insert-wish]]
=== 将 insert_wish 函数添加到 WishDB 中

该函数要求将许愿者 ID、新愿望说明和愿望截止日期作为输入参数，并在数据库的新记录中输入该数据。该函数不会返回任何值。

打开  `db.php `  并将  `insert_wish`  函数添加到  `WishDB`  类中：

*对于 MySQL 数据库：*


[source,php]
----

function insert_wish($wisherID, $description, $duedate) {
    $description = $this->real_escape_string($description);
    if ($this->format_date_for_sql($duedate)==null){
       $this->query("INSERT INTO wishes (wisher_id, description)" .
            " VALUES (" . $wisherID . ", '" . $description . "')");
    } else
        $this->query("INSERT INTO wishes (wisher_id, description, due_date)" .
            " VALUES (" . $wisherID . ", '" . $description . "', "
            . $this->format_date_for_sql($duedate) . ")");
}
----

*对于 Oracle 数据库：*


[source,php]
----

function insert_wish($wisherID, $description, $duedate) {
    $query = "INSERT INTO wishes (wisher_id, description, due_date) VALUES (:wisher_id_bv, :desc_bv, to_date(:due_date_bv, 'YYYY-MM-DD'))";
    $stid = oci_parse($this->con, $query);
    oci_bind_by_name($stid, ':wisher_id_bv', $wisherID);
    oci_bind_by_name($stid, ':desc_bv', $description);
    oci_bind_by_name($stid, ':due_date_bv', $this->format_date_for_sql($duedate));
    oci_execute($stid);
    oci_free_statement($stid);
}
----

该代码调用 format_date_for_sql 函数，以将输入的截止日期转换为数据库服务器可以处理的格式。然后，执行 INSERT INTO wishes (wisher_id, description, due_date) 查询以在数据库中输入新的愿望。


[[add-format-date-for-sql]]
=== 将 format_date_for_sql 函数添加到 WishDB 中

将  `format_date_for_sql`  函数添加到  `db.php`  的  `WishDB`  类中。该函数需要一个字符串，并将日期作为输入参数。该函数返回具有数据库服务器可处理的格式的日期；如果输入字符串为空，则返回 `空值` 。

*注：*本示例中的函数使用 PHP  `date_parse`  函数。该函数仅适用于英语语言的日期（如 December 25, 2010）和阿拉伯数字。专业 Web 站点使用日期选取器。

*对于 MySQL 数据库：*


[source,php]
----

function format_date_for_sql($date) {
    if ($date == "")
        return null;
    else {
        $dateParts = date_parse($date);
        return $dateParts["year"] * 10000 + $dateParts["month"] * 100 + $dateParts["day"];
    }
}

*对于 Oracle 数据库：*


[source,php]
----

function format_date_for_sql($date) {
    if ($date == "")
        return null;
    else {
        $dateParts = date_parse($date);
        return $dateParts['year'] * 10000 + '-' + $dateParts['month'] * 100 + '-' + $dateParts['day'];
    }
}
----

如果输入字符串为空，则代码返回空值。否则，将  `$date`  作为输入参数以调用内部  `date_parse`  函数。 `date_parse`  函数返回一个数组，其中包含三个名为  `$dateParts["year"]` 、 `$dateParts["month"]`  和  `$dateParts["day"]`  的元素。最终输出字符串由  `$dateParts`  数组元素组成。

*重要说明：* `date_parse`  函数仅识别英语日期。例如，它解析 "February 2, 2016" 而不解析 "2 Unora, 2016"。

*Oracle 数据库用户注意事项：*唯一的格式要求是， `return $dateParts...`  语句中的日期格式应与  `insert_wish`  查询的  `to_date`  SQL 函数中的日期格式相匹配。


[[validateAndEnterWishToDatabase]]
=== 在数据库中输入新的愿望记录

现在，您已开发了辅助函数，接下来便可添加代码以验证新的愿望数据；如果数据有效，则将数据输入到数据库中。如果数据无效，代码必须重新加载 "Add Wish" 窗体。如果数据无效的原因是没有输入说明，但输入了截止日期，则会保存截止日期并在重新加载窗体时重新显示该日期，您<<_returning_to_the_front_index_php_page,以前开发的>>代码实现了该功能。

在顶部 <? php?> 块（属于  `editWish.php` ）中会话处理代码下面输入以下代码：


[source,php]
----

require_once("Includes/db.php");
$wisherID = WishDB::getInstance()->get_wisher_id_by_name($_SESSION['user']);

$wishDescriptionIsEmpty = false;
if ($_SERVER['REQUEST_METHOD'] == "POST"){
    if (array_key_exists("back", $_POST)) {
        header('Location: editWishList.php' ); 
        exit;
    } else
    if ($_POST['wish'] == "") {
        $wishDescriptionIsEmpty =  true;
    } else {
        WishDB::getInstance()->insert_wish($wisherID, $_POST['wish'], $_POST['dueDate']);
        header('Location: editWishList.php' );
        exit;
    }
}
  
----

该代码执行以下功能：

* 允许使用  `db.php`  文件
* 获取或创建  `WishDB`  类实例
* 通过调用  `get_wisher_id_by_name`  函数，检索尝试添加愿望的许愿者的 ID
* 初始化  `$wishDescriptionIsEmpty`  标志，该标志将在以后显示错误消息时使用。
* 检查请求方法是否为 POST，这意味着数据是从窗体中提交的，目的是在  `editWish.php`  页中输入愿望数据。
* 检查  `$_POST`  数组是否包含具有 "back" 键的元素

如果  `$_POST`  数组包含具有 "back" 键的元素，则在提交窗体之前按了 "Back to the List" 按钮。在这种情况下，代码会将用户重定向到  `editWishList.php` ，而不保存在字段中输入的任何数据并停止 PHP 处理。

如果 $_POST 数组_不_包含具有 "back" 键的元素，则数据是通过按 "Save Changes" 按钮提交的。在这种情况下，代码验证是否填写了愿望说明。该代码的工作方式是，检查 $_POST 数组中具有 "wish" 键的元素是否为空；如果该键为空，则将 $wishDescriptionIsEmpty 标志更改为 true。请注意，不会在 PHP 块中执行其他代码，将重新加载 "Add Wish" 窗体。

如果未按 "Back to the List" 按钮但填写了愿望说明，代码将调用  `insert_wish`  函数并将许愿者 ID、说明和愿望截止日期作为输入参数。然后，代码将用户重定向到  `editWishList.php`  页并停止 PHP 处理。

[[_displaying_error_messages]]
=== 显示错误消息

如果用户尝试保存愿望，但没有输入愿望说明，则一定会显示错误消息。
在 HTML 输入窗体的 "Describe your wish" 输入字段下输入以下 <? php?> 块：


[source,php]
----

<?php
if ($wishDescriptionIsEmpty)
    echo "Please enter description<br/>";
?>
----

如果  `$wishDescriptionIsEmpty`  标志为 true，则会显示错误消息。该标志是在输入窗体验证期间处理的。

[[_returning_to_the_front_index_php_page]]
== 返回到主页 index.php

用户应该能够随时按某个按钮返回到应用程序主页。
要实现该功能，请在  `editWishList.php`  文件中的结束 </body> 标记前面输入以下 HTML 输入窗体：


[source,xml]
----

<form name="backToMainPage" action="index.php"><input type="submit" value="Back To Main Page"/></form>
----

一按下 "Back to Main Page" 按钮，该窗体便将用户重定向到主页 index.php。

[[_testing_the_add_wish_functionality]]
== 测试添加愿望功能

1. 运行应用程序。在  `index.php`  页上，填写以下字段：在 "Username" 字段中输入 "Tom"，在 "Password" 字段中输入 "tomcat"。
image::images/user-logon-to-edit-wish-list.png[]
2. 按 "Edit My Wish List" 按钮。 `editWishList.php`  页打开。 

image::images/edit-wish-list-add-wish.png[]

3. 按 "Back to Main Page" 按钮。 `index.php`  页打开。
4. 以 Tom 身份登录，然后再次按 "Edit My Wish List" 按钮。 `editWishList.php`  页打开。
5. 按 "Add Wish" 按钮。 `editWish.php`  页打开。填写窗体。
image::images/new-wish.png[] 
按 "Back to the List" 按钮。 `editWishList.php`  页打开，但未添加输入的愿望。
6. 再次按 "Add Wish" 按钮。 `editWish.php`  页打开。填写截止日期并将说明保留空白。按 "Save Changes" 按钮。 `editWish.php`  页将显示输入窗体，其中包含一条错误消息和填写的截止日期。
7. 再次按 "Add Wish" 按钮。 `editWish.php`  页打开。填写窗体，然后按 "Save Changes" 按钮。 `editWishList.php`  页将显示更新的愿望列表。 

image::images/edit-wish-list-updated.png[]

[[_application_source_code_after_the_current_lesson_is_completed]]
== 完成当前课程后的应用程序源代码

MySQL 用户：单击link:https://netbeans.org/files/documents/4/1932/lesson6.zip[+此处+]以下载源代码，该代码反映了在完成课程后的项目状态。

Oracle 数据库用户：单击link:https://netbeans.org/projects/www/downloads/download/php%252Foracle-lesson6.zip[+此处+]以下载源代码，该代码反映了在完成课程后的项目状态。

[[_next_steps]]
== 后续步骤

link:wish-list-lesson5.html[+<< 上一课+]

link:wish-list-lesson7.html[+下一课 >>+]

link:wish-list-tutorial-main-page.html[+返回到教程主页+]


link:/about/contact_form.html?to=3&subject=Feedback:%20PHP%20Wish%20List%20CRUD%206:%20Writing%20New%20DB%20Entry[+发送有关此教程的反馈意见+]


要发送意见和建议、获得支持以及随时了解 NetBeans IDE PHP 开发功能的最新开发情况，请link:../../../community/lists/top.html[+加入 users@php.netbeans.org 邮件列表+]。

link:../../trails/php.html[+返回至 PHP 学习资源+]

