# 示例

下面是一个在PHP和CUBRID建立连接的简单的例子。本节将覆盖最基本和最显著的特性。下面的代码需要连接CUBRID数据库，这意味着 CUBRID服务和 CUBRID Broker已经运行。

下面用demodb数据库作为例子举例。默认在安装时就创建了。确认此数据库已经被创建。

示例 #1 数据查询的例子

    <html>
        <head>
        <meta http-equiv="content-type" content="text/html; charset=euc-kr">
        </head>
        <body>
        <center>
        <table border=2>
        <?php
            /**
             * Set server information for CUBRID connection. host_ip is the IP
             * address where the CUBRID Broker is installed (localhost in this
             * example), and host_port is the port number of the CUBRID Broker.
             * The port number is the default given during the installation.
             * For details, see "Administrator's Guide."
             */
            $host_ip = "localhost";
            $host_port = 33000;
            $db_name = "demodb";
            /**
             * Connect to CUBRID Server. Do not make the actual connection, but
             * only retain the connection information. The reason for not making
             * the actual connection is to handle transaction more efficiently
             * in the 3-tier architecture.
             */
            $cubrid_con = @cubrid_connect($host_ip, $host_port, $db_name);

            if (!$cubrid_con) {
                echo "Database Connection Error";
                exit;
            }
        ?>
        <?php
            $sql = "select sports, count(players) as players from event group by sports";
            /**
             * Request the CUBRID Server for the results of the SQL statement.
             * Now make the actual connection to the CUBRID Server.
             */
            $result = cubrid_execute($cubrid_con, $sql);

            if ($result) {
                /**
                 * Get the column names from the result set created by the SQL query.
                 */
                $columns = cubrid_column_names($result);
                /**
                 * Get the number of columns in the result set created by the SQL query.
                 */
                $num_fields = cubrid_num_cols($result);
                /**
                 * List the column names of the result set on the screen.
                 */
                echo "<tr>";

                while (list($key, $colname) = each($columns)) {
                    echo "<td align=center>$colname</td>";
                }

                echo "</tr>";

                /**
                 * Get the results from the result set.
                 */
                while ($row = cubrid_fetch($result)) {
                    echo "<tr>";

                    for ($i = 0; $i < $num_fields; $i++) {
                        echo "<td align=center>";
                        echo $row[$i];
                        echo "</td>";
                    }

                    echo "</tr>";
                }
            }
            /**
             * The PHP module in the CUBRID runs in a 3-tier architecture. Even when
             * calling SELECT for transaction processing, it is processed as a part
             * of the transaction. Therefore, the transaction needs to be rolled back
             * by calling commit or rollback even though SELECT was called for smooth
             * performance.
             */
            cubrid_commit($cubrid_con);
            cubrid_disconnect($cubrid_con);
        ?>
        </body>
        </html>

示例 #2 数据插入的例子

    <html>
        <head>
        <meta http-equiv="content-type" content="text/html; charset=euc- kr">
        </head>
        <body>
        <center>
        <table border=2>
        <?php
            /**
             * host_ip is the IP address where the CUBRID Broker is installed
             * host_port is the port number of the CUBRID Broker
             * db_name is the name of CUBRID Database
             */
            $host_ip = "localhost";
            $host_port = 33000;
            $db_name = "demodb";
            $cubrid_con = @cubrid_connect($host_ip, $host_port, $db_name);

            if (!$cubrid_con) {
                echo "Database Connection Error";
                exit;
            }
        ?>
        <?php
            $sql = "insert into olympic (host_year,host_nation,host_city,"
                . "opening_date,closing_date) values (2008, 'China', 'Beijing',"
                . "to_date('08-08-2008','mm-dd- yyyy'),to_date('08-24-2008','mm-dd-yyyy')) ;";
            $result = cubrid_execute($cubrid_con, $sql);
            if ($result) {
                /**
                 * Handled successfully, so commit.
                 */
                cubrid_commit($cubrid_con);
                echo "Inserted successfully ";
            } else {
                /**
                 * Error occurred, so the error message is output and rollback is called.
                 */
                echo cubrid_error_msg();
                cubrid_rollback($cubrid_con);
            }
            cubrid_disconnect($cubrid_con);
        ?>
        </body>
        </html>

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open