// 
//     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.
//

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



1. *=> 使用 PHP 创建数据库驱动的应用程序 - 主页*

2. 创建数据库

1. link:wish-list-lesson1.html[+创建 MySQL 数据库+]
2. link:wish-list-oracle-lesson1.html[+创建 Oracle 数据库表+]
3. 
link:wish-list-lesson2.html[+设计应用程序。从数据库读取数据+]

4. link:wish-list-lesson3.html[+创建新的应用程序用户+]
5. link:wish-list-lesson4.html[+优化代码+]
6. link:wish-list-lesson5.html[+添加安全功能。实现应用程序用户登录+]
7. link:wish-list-lesson6.html[+在数据库中添加新的愿望+]
8. link:wish-list-lesson7.html[+更新和删除数据库中的条目+]
9. link:wish-list-lesson8.html[+使用 CSS 技术改进应用程序的外观+]
10. link:wish-list-lesson9.html[+将应用程序部署到远程 Web 服务器+]

image::images/netbeans-stamp-80-74-73.png[title="此页上的内容适用于 NetBeans IDE 7.2、7.3、7.4 和 8.0"]

在本教程中，您将利用 NetBeans IDE 对 PHP 的支持创建并运行一个简单的 Web 应用程序。该示例说明了如何创建愿望列表。在创建和部署应用程序后，您可以通过该应用程序与朋友分享愿望列表上的信息，例如，婚礼、生日或节日礼物列表。该信息存储在第 1 课创建的数据库中。

任何注册用户都可以查看其他用户的愿望列表，该功能是在第 2 课中开发的。

应用程序支持新用户注册，该功能是在第 3 课中开发的。

在第 4 课中，您了解了简化代码维护的提示。

第 5 课提供了安全问题的可能解决方案。

在第 6 和 7 课中，您开发了允许每个注册用户编辑自己的愿望列表的功能。

在第 8 课中，您通过应用 CSS 样式表，添加了一些样式以美化应用程序外观。最后，您使用第 9 课中提供的提示，在远程 Web 服务器上部署了应用程序。

这些代码是为 MySQL 数据库和 Oracle 数据库用户提供的。该教程使用  ``mysqli``  和 OCI8 API。对 PDO 感兴趣的用户可以link:https://netbeans.org/projects/www/downloads/download/php/wishlist-pdo.zip[+下载+]完整教程的 PDO 版本。注意，PDO_OCI API 是实验性的！


*要学习本教程，您需要具备以下软件和资源。*

|===
|软件或资源 |要求的版本 

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |PHP 下载包 

|PHP 引擎 |版本 5 

|Web 服务器 |推荐使用 link:http://httpd.apache.org/download.cgi[+Apache HTTP Server 2.2+]。
 

|数据库服务器 |MySQL、OracleXE 或 Oracle11g 
|===

有关安装和配置必需软件的详细信息，请参见介绍在操作系统中link:../../trails/php.html#configuration[+准备 PHP 开发环境+]的文档。


== 后续步骤：

link:wish-list-lesson1.html[+创建 MySQL 数据库+]

或者

link:wish-list-oracle-lesson1.html[+创建 Oracle 数据库表+]


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


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

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

