Я пишу функцию, которая принимает mysqli_result и добавляет все возвращенные столбцы в ассоциативный массив в моем объекте результата.На данный момент все, что возвращается с помощью mysqli :: multi_query, имеет строковый формат, а описание того, каким типом значения должно быть значение, хранится в массиве объектов, возвращаемых mysqli :: fetch_fields.Я чувствую, что до сих пор это довольно запутанно, поэтому позвольте мне закодировать его
if ($mysqli->multi_query($inputQuery)) {
if ($result = $mysqli->store_result()) {
//$fields is an array of custom objects
$fields = $result->fetch_fields();
//$fieldType is an integer that is the value of a mysqli predefined constant
$fieldType = $fields[0]->type;
if ($curRow = $result->fetch_row()) {
//No matter what the value type in the database of this item is, and no
//matter what $fieldType corresponds to, $curVal is going to be a string
$curVal = $curRow[0];
}
}
}
Целое число, которое принимает $fieldType
, насколько я понимаю, это ЗНАЧЕНИЕ предопределенной константы mysqli, которую можно найти здесь:http://www.php.net/manual/en/mysqli.constants.php
Я знаю, что подобный вопрос был опубликован здесь: PHP тип данных mysqli_fetch_field , но меня больше интересует сопоставление значений их соответствующим ключам.
То, что я хотел бы сделать, это привести строковое значение $curVal
в правильный тип значения на основе сопоставления $fieldType
с предопределенной константой mysqli.Я полагаю, что я мог бы выполнить проверку методом грубой силы для каждой предопределенной константы, или я мог бы создать ассоциативный массив со значением -> ключ вместо ключа -> значение и затем ссылаться на него, но я чувствую, что должен быть более простой способ сделать это.
Тогда мой вопрос: как проще всего найти предопределенную константу в PHP по ее значению?Получаю ли я доступ к этим предопределенным константам mysqli так же, как и к глобальным константам в PHP, или мне нужно что-то вроде $mysqli->PREDEFINED_CONSTANT
?
С уважением,