我正在开发一个需要连接到数据库的android应用程序。我有android部分工作,但我有我的php脚本的麻烦。
<?php
$con = mysqli_connect(/This info is correct/) or die ("Unable to connect");
$gebruikersnaamOntvanger = $_POST["gebruikersnaamOntvanger"];
$idBetaler = $_POST["idBetaler"];
$bedrag = $_POST["bedrag"];
$saldoBetaler = $_POST["saldo"];
$response = array();
$response["success"] = "false";
$statement = mysqli_prepare($con, "SELECT idGebruiker, Saldo FROM Gebruikers WHERE Gebruikersnaam = ?");
mysqli_stmt_bind_param($statement, "s", $gebruikersnaamOntvanger);
mysqli_stmt_execute($statement);
mysqli_stmt_store_result($statement);
mysqli_stmt_bind_result($statement, $idGebruiker, $Saldo);
while($row = mysqli_stmt_fetch($statement)){
$idOntvanger = $idGebruiker;
$saldoOntvanger = $Saldo;
}
$saldoOntvanger += $bedrag;
$saldoBetaler -= $bedrag;
try {
$statement2 = mysqli_prepare($con, "INSERT INTO Transacties (idBetaler, idOntvanger, Bedrag, Datum, Uitgevoerd) VALUES(?, ?, ?, now(), 1)");
mysqli_stmt_bind_param($statement2, "iid", $idBetaler, $idOntvanger, $bedrag);
mysqli_stmt_execute($statement2);
$response["success"] = "success";
} catch(Exception $e) {
$response["success"] = $e->gettext;
}
echo json_encode($response);
?>
所以android部分正常工作并正确返回json对象,但数据库中没有任何更改。我尝试添加了一个try-catch,所以我得到了错误所在,但是try-catch永远不起作用。脚本总是返回成功,即使它不工作。请注意,我是新来的php和我已经仔细检查了sql查询,他们应该是正确的。如果您需要更多信息,请询问。
2条答案
按热度按时间aor9mmx11#
我认为问题在于
iid
在insert查询的绑定中。应该是iis
或者iii
大概是吧。你试过使用try/catch
但在我的脑海中并没有充分利用它们——创造了一个prepared statement
应该进行测试,看它是否成功或失败~其结果可用于try/catch
指示故障的逻辑。请原谅我procedural
以及OOP
样式代码zi8p0yeb2#
mysqli函数不抛出异常。所以即使有错误,你的捕获也不会被执行。更改代码如下:
当您看到错误时,可以修复代码。可能会添加相同的错误处理mysqli\u prepare和其他