簡體   English   中英

將返回值從php函數傳遞給mysql_query

[英]passing return value from a php function to a mysql_query

我遇到了將$ query變量傳遞給mysql_query命令的問題。 所以,如果我這樣做,我會在數據庫中獲得更新(我想要):

$query = "UPDATE master SET finished_size = '$finished_size' WHERE id = $id";
mysql_query ($query, $db);

但是,我需要使用一個函數來執行此操作。 我正在嘗試使用此代碼,但我無法再獲得我想要的數據庫更新:

if ( !function_exists("testQuery") ) {
    function testQuery($id) {
        return 'UPDATE master SET finished_size = "$finished_size" WHERE id = $id';
    }
}

$query = testQuery($id);

mysql_query ($query, $db);

我已經嘗試了很多方法,但是包含要傳遞給mysql_query函數的字符串的$ query變量似乎無法識別。 但我不知道如何以正確的方式做到這一點。

另外,我意識到mysql_query是一個舊函數,但這是我必須使用的代碼,因為我正在使用非常舊的軟件。

向函數添加另一個參數。

此外,變量僅在雙引號內擴展,而不是單引號。 請參閱PHP中單引號和雙引號字符串之間的區別是什么?

if ( !function_exists("testQuery") ) {
    function testQuery($id, $finished_size) {
        return "UPDATE master SET finished_size = '$finished_size' WHERE id = $id";
    }
}

$query = testQuery($id, $finished_size);

mysql_query ($query, $db);

如果您在不連接更多字符串的情況下將變量放入字符串,則必須使用引號,而不是撇號。 所以:

return "UPDATE master SET finished_size = '$finished_size' WHERE id = $id";

事實證明,問題在於我使用的是已經被提取的$ _POST變量,因此$ finished_size不再被視為全局變量(如$ _POST ['finished_size'])。 因此,提取的變量在函數內沒有范圍訪問權限。

所以我只是在函數內部重新提取$ _POST。 我有很多來自表單的$ _POST變量,因此在函數內部提取它們似乎是將它們傳遞回$ query的一種相當方便的方法。

在此之前給出的答案有助於我意識到這是一個范圍問題。

暫無
暫無

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

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