2016-06-13 3 views
0

Я хотел бы захватить $ status и вставить его в базу данных «smsdb». Однако я не могу этого сделать и желаю, чтобы кто-то руководил мной. Этот начальный код является частью функции стены, и это означает, что статус получен после вызова функции. В функции grabdetails, где я получаю другие данные в db, статус $ недоступен. Будет ли кто-то ведет меня, пожалуйста ... // кодPHP Mysql вставляет данные в базу данных из функции

$name = $resultarr['name']; 
$amount = $resultarr['amount']; 
$transaction_id = $resultarr['trans_id']; 
$date = $resultarr['time_paid']; 

//message template 
$message = "Dear $name we have received $amount from you. MPESA transaction Id $transaction_id on $date."; 

$mobilenumber = $resultarr['msisdn']; // get mobile number from array 
$message_sent = $message; 

$serviceArguments = array(
     "mobilenumber" => $mobilenumber, 
     "message" => $message_sent 
); 

$client = new SoapClient("http://59.38.606.10:8080/smsengine/smsws?WSDL"); 

$result = $client->process($serviceArguments); 

grabdetails($message_sent, $mobilenumber); 

return $result; 

} 
//I call the function wall() to send sms   

wall(); 
$perm = wall(); 
$status = $perm->return; //outputing the status 
    // Here I want to capture the $status variable and put it in a db below 
echo "$status"; 


function grabdetails($messagee, $mobno) 
{ 

$message_sent = $messagee; 
$mobilenumber = $mobno; 


$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "smsdb"; 

// Create connection 


// Check connection 

$sql = "INSERT INTO smsdb (sms_text, receiver_number, time_sent, status) 
    VALUES 
    ('$message_sent', '$mobilenumber', NOW(), '$status')"; 
$conn->query($sql); 

Любой один?

+0

пожалуйста, дайте надлежащее открытие и закрытие скобки в вашем коде –

+0

, где именно? Просим –

+0

, где эта функция заканчивается? у него нет закрывающих брекетов, а также где находится стена функции? –

ответ

1

Переменная $status: out of scope.

Добавить строку:

global $status;

Для вашей функции.

http://php.net/manual/en/language.variables.scope.php

EDIT:

При вызове grabdetails в функции wall(), переменная $status еще не установлен. Возможно, передайте статус в качестве параметра в функции grabdetails из функции wall().

например. grabdetails($message_sent, $mobilenumber, $result);

изменить также объявление функции в grabdetails($messagee, $mobno, $status);

+0

Должен ли я включать глобальный глобальный статус $ status = $ perm-> return ;? А при вставке в базу данных? –

+0

функция grabdetails ($ messagee, $ mobno, $ status) {вот так? Что из вызова функции стены, где ожидаются два параметра? Я имею в виду здесь grabdetails ($ message_sent, $ mobilenumber); –

+0

Добавить переменную 'result' в качестве параметра при вызове метода. 'grabdetails ($ message_sent, $ mobilenumber, $ result);'. Разве это не '$ result-> return == $ status'? – user6459501