#mysql #arrays #variables #fetch
#mysql #массивы #переменные #выборка
Вопрос:
Я пытаюсь реализовать подключение к платформе онлайн-платежей.
Один из файлов доставляет мне некоторые проблемы, потому что иногда код работает, иногда нет… И я не могу понять, почему…
Вот где происходит сбой кода…
$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)
происходит сбой, потому что значение пустое… но иногда это работает…
Есть идеи о том, что может произойти?
Спасибо Luis
Комментарии:
1. Вместо того, чтобы делать
if (!$hasil)
, попробуйте сделатьif ($hasil === false)
. Он должен проверять, является ли возвращаемое значение false, а не равно ли значение false (поскольку false может означать 0, или null, или «в PHP)2. вы пробовали использовать echo «<pre>»; print_r ($ checkout); echo»</ pre>»;
3. * fin1te, я пробовал это, это сработало! большое спасибо 🙂 простое и понятное решение : d, Луис
Ответ №1:
Единственный способ, которым происходит сбой, — это когда запрос ничего не возвращает.
Правильным способом было бы проверить, возвращается ли что-то:
$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";
}
Комментарии:
1. Спасибо за вашу помощь, бриедис, но пока я остановлюсь на решении fin1te
2. Но все же вам следует проверить, не возвращается ли что-либо запросом, потому что в противном случае у вас появится сообщение об ошибке, и его не следует игнорировать.