Альтернатива Explode, которая обрабатывает целые числа - str_split () не может быть использована - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь взять значение из базы данных, сохранить это значение в виде массива, а затем разбить массив с разделителем:, поместив первое значение в другой столбец в той же таблице, оставив остальные значения где они пришли Я думаю, что код, который я имею, должен добиться цели, но значение, которое я хочу взорвать, содержит целые числа, которые взрываются, очевидно, плохо обрабатывает (?). Я также не могу использовать str_split (), поскольку мы недавно обновились до PHP 7.2, а str_split () устарела. Я потратил много времени на поиски альтернатив Google, но не понимаю, как они могут мне помочь.

Это моя последняя попытка с использованием str_word_count ():

$queryGetStrings = 'SELECT roleText FROM table1.tempRoles';
$resultGetStrings = mysqli_query($conn,$queryGetStrings) or die("<br> <br>".$queryGetStrings."<br><br>".mysqli_error($conn));
$resultsArray = mysqli_fetch_all($resultGetStrings);

$explode_row = str_word_count($resultsArray, 1, '_123456789');

foreach($resultsArray as $key => $row) {
//Line below is from my explode attempt
     //$explode_row = explode(":", $row);

     $addSplitColumns = "UPDATE table1.tempRoles SET `user` = '" . $explode_row[0] . "'";
     $executeSplitColumns = mysqli_query($conn, $addSplitColumns) or die("<br><br>" . 

$addSplitColumns . "<br><br>" . mysqli_error($conn));

Может ли кто-нибудь порекомендовать альтернативный метод для этого? Я относительно новичок в бэкэнд-программировании, поэтому мой репозиторий в лучшем случае мрачен. Я ценю любые предложения.

1 Ответ

0 голосов
/ 07 сентября 2018

Все, что вам нужно сделать, это привести второй аргумент explode к строке:

$explode_row = explode(":", (string) $row);

Если это имеет смысл только: перед обновлением строки вы должны проверить длину полученного массива.Если у вас есть только одно значение внутри массива, это означает, что строка не имеет :

...