如何爆炸传入的短信并将其插入php中的数据库

时间:2018-08-26 12:01:03

标签: php mysql function explode

我收到的这种格式的文本:

Localhost:8080/Project/index.jsp?"mess"+"="+"Sorry" 

我想要的是将文本爆炸成这样:

POS;OS0101001;123456;ATAKUMOSA EAST;IWARA;TOWN HALL IWARA;755;650;50;10;10;10;15;245;5;Peacefully conducted ;2018-08-26 07:05:40

我实际上尝试过爆炸,但是爆炸之后,我尝试将其插入数据库中,但它正在插入空值。

到目前为止我尝试过的事情:

$officer_id = $details[1];
    $userpassword = $details[2];
    $lga = $db->real_escape_string($details[3]);
    $ward = $db->real_escape_string($details[4]);
    $poll_unit = $db->real_escape_string($details[5]);
    $incident_type = $db->real_escape_string($details[6]);
    $incident_priority = $db->real_escape_string($details[7]);
    $incident = $db->real_escape_string($details[8]);
    $device_entry_date = $details[9];

要插入数据库中,我有这个:

$dir   = strtolower(trim(preg_replace('/\s+/', ' ', substr(trim($_REQUEST['Body']),0,3))));
    $msg   = substr(trim($_REQUEST['Body']),0,3);
    if($dir == 'inc'){
                    onIncidentReport($phone,$date,$msg);
        }

我已经尽力了。在线进行了一些研究,但仍无法弄清。

每次尝试将空值插入数据库时​​,都会将其插入。

1 个答案:

答案 0 :(得分:1)

strtoupper()返回一个String对象,而不是数组。 $split是应用于数据库变量的字符串数组。 $details只是从strtoupper()返回的单个String对象。

您需要迭代$split将其更改为大写:

foreach($split as &$value)
    $value = strtoupper($value);

然后在数据库变量中使用$split值:

    $officer_id = $split[1];
    $userpassword = $split[2];
    $lga = $db->real_escape_string($split[3]);
    $ward = $db->real_escape_string($split[4]);
    //...etc