mysql_fetch_array有时会失败

时间:2011-04-21 10:01:43

标签: mysql arrays variables fetch

我正在尝试实现与在线支付框架的连接。

其中一个文件给我带来了一些麻烦,因为有时候代码有效,有时它不会...而且我无法理解为什么......

这是代码失败的地方......

$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”工作,它显示正确的值,但是当我把它们放在数组上时,有时变量会被传递,有时它们不会......所以,当到达{时{1}}它失败,因为值为空...但有时它有效...

关于可能发生什么的任何想法?

Thans 路易斯

1 个答案:

答案 0 :(得分:0)

这种失败的唯一方法是查询不返回任何内容。

正确的方法是检查是否有东西返回:

$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";
}