我正在尝试实现与在线支付框架的连接。
其中一个文件给了我一些麻烦,因为代码有时工作,有时不…我不明白为什么……
这里是代码失败的地方…
$sql = "select transidmerchant,totalamount from nsiapay where transidmerchant='".$order_number."'and trxstatus='Verified'";
$result = mysql_query($sql);
**$checkout = mysql_fetch_array($result);**
echo "sql : ".$sql;
$hasil=$checkout['transidmerchant'];
echo "hasil: ".$hasil;
$amount=$checkout['totalamount'];
echo "amount: ".$amount;
// Custom Field
if (!$hasil) {
echo 'Stop1';
} else {
if ($status=="Success") {}
}
这只是代码的一部分,但我认为这足以让你看到问题…它在粗体的$checkout = mysql_fetch_array($result);
上失败了奇怪的是,"echo sql"工作了,它显示了正确的值,但是当我把它们放在数组上时,有时传递变量,有时不传递……所以,当到达if (!$hasil)
时,它失败了,因为值是空的…但有时它是有效的…
你知道会发生什么吗?
谢谢路易斯。
唯一失败的方式是查询没有返回任何内容。
正确的方法是检查是否有返回值:
$sql = "select transidmerchant,totalamount from nsiapay where transidmerchant='".$order_number."'and trxstatus='Verified'";
$result = mysql_query($sql);
if($checkout = mysql_fetch_array($result)){
$hasil = $checkout['transidmerchant'];
echo "hasil: ".$hasil;
$amount=$checkout['totalamount'];
echo "amount: ".$amount;
// Custom Field
if (!$hasil) {
echo 'Stop1';
} else {
if ($status=="Success") {}
}
}else{
echo "Empty query result";
}