2014-03-05 48 views
0

我想用php運行xquery。我已經得到了某些查詢來運行,但是,我不確定如何在其中使用變量。我一直在尋找一段時間,但很少有參考。使用XQuery與PHP變量

謝謝。

這是變量和查詢:

$contype=$_POST['ctype']; 
$cnumber=$_POST['number']; 
$cid = $_POST['id']; 

$query = 'UPDATE clients SET phone = xmlquery(\'transform copy $pn := $num modify do insert 
document{ 
    <contact type="$contype"> 
     <phoneno>$cnumber</phoneno> 
    </contact> 
} 
into $pn/phone 
return $pn\' 
passing clients.phone as "num") 
where id =$cid'; 

回答

1

對於PHP這僅僅是一個string。你正在使用單引號,所以變量不會被替換爲字符串。您可以連接的靜態部分與動態,使用雙引號串,使用sprintf(),...

$foo = 'Hello '.$name.'!'; 
$foo = "Hello $name!"; 
$foo = sprintf('Hello %s!', $name); 

取決於你如何使用字符串,準備語句是一種選擇。他們會照顧可能需要的轉義,以避免SQL注入。

0

謝謝! PHP確實有這些東西的方法,即使對於XQuery也是如此。這是我做的:

$contype=$_POST['ctype']; 
$cnumber=$_POST['number']; 
$cid = $_POST['id']; 

$query = 'UPDATE clients SET phone = xmlquery(\'transform copy $pn := $num modify do insert 
document{ 
    <contact type="'.$contype.'"> 
     <phoneno>'.$cnumber.'</phoneno> 
    </contact> 
} 
into $pn/phone 
return $pn\' 
passing clients.phone as "num") 
where id =$cid'; 

這也是爲了幫助他人制作相同類型的應用程序。 :)