簡體   English   中英

將PHP函數與數據庫集成

[英]Integrating PHP functions with a database

我剛剛提交了我的工作,而課程負責人要求我使用PHP函數來查詢數據庫。 我怎樣才能做到這一點? 是否可以在查詢之前僅添加“ function getRooms”,並返回所需結果。 我需要有關MySQL函數的詳盡介紹。

例如:如何將函數添加到此代碼中:

<?php
    // By Kelvin
    include ("player.php");
    $result = mysql_query("SELECT * FROM phplogin WHERE username = '$username'");
    $row = mysql_fetch_assoc($result);
    $medipack = $row['medipack'];
    if ($_POST['object'] == "Use Medipack") {
        if ($medipack != 0) {
            mysql_query("UPDATE phplogin SET score = score + 50, health = health + 50, medipack = medipack - 1
            WHERE username = '$username'");
            echo ("<P>Medipack Used!</P>");
            $RoomNumber =5;
        }
        else {
            echo ("<P>You're all out of medipacks!</P>");
        }
    }
?>

如果他正在尋找其余代碼與訪問數據庫的代碼之間的抽象層次,那么將數據庫邏輯包裝在函數中應該在正確的路徑上:

function getRooms($link){
    $sql = "SELECT * FROM rooms";
    $data = array();
    if($set = mysql_query($sql)){
        while($row = mysql_fetch_assoc($set)){
            $data[] = $row;
        }
    }
    return empty($data)
        ? null
        : $data;
}

$db_connection = mysql_connect('host', 'user', 'pass');
mysql_select_db('name', $db_connection);
$rooms = getRooms($db_connection);

將這些函數包裝到一個類中,並通過方法訪問它們是另一個步驟,因為實例化的對象可以管理其自己的連接等,但這可能比必要的步驟要遠。 其他功能(根據我的猜測)可能是:

function getRoomById($link, $id){ }
function getRoomsByName($link, Array $names){ }

我想您的課程負責人是指PHP的本機MySQL函數-http://php.net/manual/zh/book.mysql.php

您可以將查詢包裝在PHP函數中。 例如,像這樣:

function &getRooms(){
    $query="SELECT id,name FROM rooms";
    $result=mysql_query($query);

    $ar_out=array();
    while ($row = mysql_fetch_assoc($result)) {
        $ar_out[]=$row;
    }
    return $ar_out;
}

也就是說,您確實應該找到有關如何一起使用MySQLPHP的教程或書籍。 關於代碼的組織和性能,有很多事情要知道。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM