2016-06-12 99 views
0

我不明白为什么我无法获得消息发送$ message_sent和移动号码$ mobilenumber的值,并将它们存储在数据库中后,使用我所显示的grabdetails函数发送消息代码如下。有人请引导我PHP用户定义的函数问题

//代码

// fetch values from a database 
$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 
    ); 
     // send message through a web service 
    $client = new SoapClient("http://52.34.63.16:8080/smsengine/smsws?WSDL"); 

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

    // call function to grab mobile number and message 
     grabdetails($message_sent, $mobilenumber); 
    return $result; 


} 

// the function 
function grabdetails($messagee, $mobno) 
    { 

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


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

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 

// Check connection 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 
// insert into db 
$sql = "INSERT INTO smsdb (sms_text, receiver_number, time_sent) 
    VALUES 
    ('$message_sent', '$mobilenumber', CURDATE())"; 
+0

1.你执行你的SQL查询'$ sql'? 2.你知道'DATETIME'是一个数据类型吗? 3.你知道__nothing__将在'return'语句后执行吗? –

+0

你好,我编辑了代码仍然没有得到一个数据库中的值... @u_mulder –

+0

我再次问 - 你__execute__你的查询? –

回答

0

如果你定义的东西之外的功能,你需要为他们使用的内部功能使用“全局”标签。它基本上意味着你在函数内部使用全局变量。

在这种情况下,所有你需要的是添加

global $message_sent,$mobilenumber; 
+0

你在说什么全局变量? –

+0

你好,如果我使用全局关键字,当我想插入他们的值在数据库中,他们会得到值说,message_sent =“消息”和$ mobilenumber =“377 ****”? @Mert –