mysqli execute возвращает пустой бул

Я отметил предупреждение, что существуют посты с похожими названиями, но они не демонстрируют проблему, с которой я столкнулся. Они относятся к вопросам ajax и тайм-аута, которые я не думаю, что у меня есть.

Функция php ниже вызывается для вставки деталей из веб-формы в базу данных mysql. Эта функция возвращает значение, но, к сожалению, она всегда возвращает «Ошибка, -4». Это означает, что:

  1. Подготовленное заявление было успешно подготовлено
  2. параметры были успешно связаны

но:

  1. возвращаемое логическое выражение execute () не было 1.
  2. Никакая новая строка не вставлена ​​в базу данных mysql

Я ввел много вызовов журнала, чтобы попытаться решить проблему самостоятельно, но я достиг предела моего понимания mysql.

Как вы можете видеть, я также включил тест подключения к базе данных MySQL. Все, (php, mysql и firefox) работают на одном физическом хосте.

function submit_new_prod_code_request($BULK_LIQUID_CODE,$PROD_DESC,
$SKU_TYPE,$SKU_PROD_NAME,
$SKU_PROD_DESC,
$SUBUNIT_VOL,$SUBUNITS,$LITRE_PER_UNIT,
$PERC_ALC,$CN_CODE,$ERN_CODE,
$ERN_CODE_DOMESTIC,
$VAT_APP, $VAT_RATE,
$DUTY_RATE,$DUTY_PER_UNIT,
$TENANT,
$PH_MIN,$PH_MAX,
$ACID_MIN,$ACID_MAX,
$COLOUR_MIN,$COLOUR_MAX,
$TURBIDITY,
$EAN_BOTTLE,$EAN_PALLET,$PALLET_TYPE,
$LAYERS_PER_PALLET,$CASES_PER_LAYER,
$BOTTLE_TYPE,$BOTTLE_CLOSURE,
$CASE_CODE,$DIVISION,
$BRIX_MIN,$BRIX_MAX,
$GIFT,
$db,$log,$session){

$submit_success = -1;

if ($db->connect_error) {
$log->lwrite($session['first_name'].' '.$session['last_name'].' Prod Tree db connection test: '.$db->connect_error);

}
else{
$log->lwrite($session['first_name'].' '.$session['last_name'].' Prod Tree db connection test: connected');

}
$log->lwrite($session['first_name'].' '.$session['last_name'].' Prod Tree connection status:'.$db->stat());

//submit new prod code to product tree
$sql_str=$db->prepare("INSERT INTO product_tree (BULK_LIQUID, DESCRIPTION, SKU_TYPE, SKU_PROD_NAME, SKU_PROD_DESC, SUBUNIT_VOL, SUBUNIT, LITRES_PER_UNIT, PERC_ALC, CN_CODE, ERN_CODE, ERN_CODE_DOMESTIC, VAT_APPLICABLE, VAT_RATE, DUTY_RATE, DUTY_PER_UNIT, tenant_name, ph_min, ph_max, acid_min, acid_max, colour_min, colour_max, turbidity, ean_bottle, ean_pallet, pallet_type, layers_per_pallet, cases_per_layer, bottle_type, closure, case_code, division, perc_brix_min, perc_brix_max, GIFT_PACK) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");

if(!$sql_str){
$log->lwrite($session['first_name'].' '.$session['last_name'].' Prod Code Create Error 1: '.$db->error);
$log->lwrite($session['first_name'].' '.$session['last_name'].' Prod Code Create Error 1: '.$sql_str->error);
$ret=array('Error:',-1);
}
else{
$rs=$sql_str->bind_param('sssssddddssssdddsdddddddsssddssssdds',$bulk_liquid_code,$PROD_DESC,$SKU_TYPE,$SKU_PROD_NAME,$SKU_PROD_DESC,$subunit_vol,$subunits,$litre_per_unit,$perc_alc,$CN_CODE,$ERN_CODE,$ERN_CODE_DOMESTIC,$VAT_APP, $VAT_RATE, $DUTY_RATE,$DUTY_PER_UNIT,$tenant,
$PH_MIN,$PH_MAX,
$ACID_MIN,$ACID_MAX,
$COLOUR_MIN,$COLOUR_MAX,
$TURBIDITY,
$EAN_BOTTLE,$EAN_PALLET,$PALLET_TYPE,
$LAYERS_PER_PALLET,$CASES_PER_LAYER,
$BOTTLE_TYPE,$BOTTLE_CLOSURE,
$CASE_CODE,$DIVISION,
$BRIX_MIN,$BRIX_MAX,
$GIFT);
if(!$rs){
$log->lwrite($session['first_name'].' '.$session['last_name'].' Prod Code Create Error 2: '.$sql_str->error);
$log->lwrite($session['first_name'].' '.$session['last_name'].' Prod Code Create Error 2: '.$db->error);
$ret=array('Error:',-2);
}
else{
$didwork=$sql_str->execute();
$log->lwrite($session['first_name'].' '.$session['last_name'].' Prod Tree Create did it work?: '.gettype($didwork));
$log->lwrite($session['first_name'].' '.$session['last_name'].' Prod Tree Create did it set?: '.isset($didwork));
$log->lwrite($session['first_name'].' '.$session['last_name'].' Prod Tree Create did it work?: '.$didwork);
$log->lwrite($session['first_name'].' '.$session['last_name'].' Prod Tree Create did it work?: '.is_null($didwork));if(!$sql_str){
$log->lwrite($session['first_name'].' '.$session['last_name'].' Prod Tree Create Error 2: '.$sql_str->error);
$log->lwrite($session['first_name'].' '.$session['last_name'].' Prod Tree Create Error 2: '.$db->error);
$ret=array('Error:',-3);

}
else{
if($didwork==1){
$ret=array('Success:',1);
}
else{
$ret=array('Error:',-4);
}
}
}
}
$sql_str->close();
return $ret;

}

Вот конец журнала с той частью, которая, по моему мнению, лежит в основе проблем:

[31 / Aug / 2017: 10: 18: 34] (check_for_duplicate_sku) ФИО ПОЛЬЗОВАТЕЛЯ Тест соединения с БД Prod Tree: подключен
[31 / Aug / 2017: 10: 18: 34] (check_for_duplicate_sku) ФАМИЛИЯ ПОЛЬЗОВАТЕЛЯ Статус соединения с деревом продуктов: Время работы: 1162 Тем: 1 Вопросы: 58 Медленные запросы: 0 Открыто: 52 Сбросить таблицы: 1 Открыто таблиц: 46 Запросы в секунду ср: 0,049
[31 / Aug / 2017: 10: 18: 34] (check_for_duplicate_sku) ФАМИЛИЯ ПОЛЬЗОВАТЕЛЯ Prod Tree Создать это сработало ?: boolean
[31 / Aug / 2017: 10: 18: 34] (check_for_duplicate_sku) ФАМИЛИЯ ПОЛЬЗОВАТЕЛЯ Prod Tree Создать ли он установлен ?: 1
[31 / Aug / 2017: 10: 18: 34] (check_for_duplicate_sku) ФАМИЛИЯ ПОЛЬЗОВАТЕЛЯ Prod Tree Создать это сработало ?:
[31 / Aug / 2017: 10: 18: 34] (check_for_duplicate_sku) ФАМИЛИЯ ПОЛЬЗОВАТЕЛЯ Prod Tree Создать это сработало ?:

Вторая последняя строка файла журнала должна (как я понимаю) быть 1 или 0 (логическое значение), а последняя строка is_null также должна быть логической, но оба возвращаются без значения (что я могу видеть, чтобы увидеть). У кого-нибудь есть какие-либо идеи? Я что-то упускаю из виду? Я подозревал, что соединение оборвалось или возникла проблема с тайм-аутом, поэтому я проверил и проверил соединение. Любые идеи и мысли приветствуются.

РЕДАКТИРОВАТЬ 1:
$ vardump = var_export ($ didwork, true);

$ log-> lwrite ($ session [‘first_name’]. ». $ session [‘last_name’]. ‘Prod Tree Create VAR DUMP:’. $ vardump);

[31 / Aug / 2017: 11: 33: 56] (check_for_duplicate_sku) ФАМИЛИЯ ПОЛЬЗОВАТЕЛЯ Prod Tree Создать VAR DUMP: false

var_export возвратил false, которое, я думаю, является предполагаемым поведением для логического значения в соответствии с: http://php.net/manual/en/function.var-export.php

РЕДАКТИРОВАТЬ 2:

ob_start();
var_dump($didwork);
$result = ob_get_clean();
$log->lwrite($session['first_name'].' '.$session['last_name'].' Prod Tree Create VAR DUMP: '.$result);
[31 / Aug / 2017: 12: 15: 32] (check_for_duplicate_sku) ФАМИЛИЯ ПОЛЬЗОВАТЕЛЯ Prod Tree Создание VAR DUMP: bool (false)

var dump, по-видимому, помечает возвращаемый тип как логическое (ожидаемое), но указывает ли (false) значение логического значения на false? или не установлен?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector