繁体   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