我正在处理包含我所有功能的PHP文件。我目前通过GET发送信息,然后该文件确定我正在尝试执行的操作。这是我目前的文件。
if ($action == 'creditBal')
{
$user_id = $_GET['user_id'];
$amt = $_GET['amt'];
$mysql_query = "UPDATE Accounts SET BALANCE=BALANCE+$amt WHERE ID=$user_id";
$result = mysql_query($mysql_query, $mysql_conn);
if (!$result)
{
# die('MySQL Error: ' . mysql_error());
$json_array = array(
'response' => 'mysql_error'
);
return;
}
$json_array = array(
'response' => 'success',
);
echo json_encode($json_array);
mysql_close($mysql_conn);
}
上面的代码很有效,直到我决定将其更改为以下代码。
function creditBal($user_id, $amt)
{
$mysql_query = "UPDATE Accounts SET BALANCE=BALANCE+$amt WHERE ID=$user_id";
$result = mysql_query($mysql_query, $mysql_conn);
if (!$result)
{
# die('MySQL Error: ' . mysql_error());
$json_array = array(
'response' => 'mysql_error'
);
return;
}
$json_array = array(
'response' => 'success',
);
return json_encode($json_array);
mysql_close($mysql_conn);
}
if ($action == 'creditBal')
{
$user_id = $_GET['user_id'];
$amt = $_GET['amt'];
echo creditBal($user_id, $amt);
}
我已经尝试检查拼写错误和一切,但它总是不起作用。一旦我做了if $ action只相等,那就行了。由于某种原因,该功能不起作用。
这让我很困惑。
答案 0 :(得分:6)
两件事:
您的功能没有$mysql_conn
。您可以将其作为参数传递,也可以使用global
关键字使其在您的函数中可用。
当出现MySQL错误时,您实际上并未返回响应。什么也没有回报。
正如我在评论中提到的,这段代码是不安全和易受攻击的。请解决这个问题。
function creditBal($user_id, $amt, $mysql_conn)
{
$mysql_query = "UPDATE Accounts SET BALANCE=BALANCE+$amt WHERE ID=$user_id";
$result = mysql_query($mysql_query, $mysql_conn);
if (!$result)
{
# die('MySQL Error: ' . mysql_error());
$json_array = array(
'response' => 'mysql_error'
);
}
else {
$json_array = array(
'response' => 'success',
);
}
mysql_close($mysql_conn);
return json_encode($json_array);
}
if ($action == 'creditBal')
{
$user_id = $_GET['user_id'];
$amt = $_GET['amt'];
echo creditBal($user_id, $amt, $mysql_conn);
}