[英]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.