2017-02-11 67 views
1

這是沒有意義的我?..PHP查詢不能當在功能

行,所以我有我做這樣的

$wut = new mysqli("1", "2", "3", "4"); 
$updateReferralPoints = $wut->prepare("UPDATE `referrals` SET `totalreferrals` = ? WHERE `referralkey` = ?"); 
$updateReferralPoints->bind_param("ss", $referralPointAmount,$referralKeyForUpdate); 
$referralPointAmount = 10; 
$referralKeyForUpdate = "1234"; 
$updateReferralPoints->execute(); 

一個SQL查詢,它的工作原理完全地精...

當我把它添加到一個函數的SQL查詢是行不通的..

因此,例如,這是不行的

if($doUpdate) 
{ 
    updateReferralPointsCall();//DOESN'T WORK? 
} 

function updateReferralPointsCall() 
{ 
    $wut = new mysqli("1", "2", "3", "4"); 
    $updateReferralPoints = $wut->prepare("UPDATE `referrals` SET `totalreferrals` = ? WHERE `referralkey` = ?"); 
    $updateReferralPoints->bind_param("ss", $referralPointAmount,$referralKeyForUpdate); 
    $referralPointAmount = 10; 
    $referralKeyForUpdate = "1234"; 
    $updateReferralPoints->execute(); 
} 

但這將工作

if($doUpdate) 
{ 
    $wut = new mysqli("1", "2", "3", "4"); 
    $updateReferralPoints = $wut->prepare("UPDATE `referrals` SET `totalreferrals` = ? WHERE `referralkey` = ?"); 
    $updateReferralPoints->bind_param("ss", $referralPointAmount,$referralKeyForUpdate); 
    $referralPointAmount = 10; 
    $referralKeyForUpdate = "1234"; 
    $updateReferralPoints->execute(); 
} 

回答

0

你需要和mysqli對象傳遞給函數。你只能像這樣在普通函數內調用全局變量。

所以,這樣的事情應該工作:

if($doUpdate) 
{ 
    updateReferralPoints($mysqlconnection);//DOESN'T WORK? 
} 

function updateReferralPoints($updateReferralPoints) 
{ 
+0

我不認爲它的範圍......在所提供的示例中,該功能意味着它應該可以使用內創建的連接。 – Terminus

+0

此外,您正在綁定後定義變量。這是行不通的。 –

+0

您還應該按索引進行綁定 –