2014-03-05 44 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'; 

这也是为了帮助他人制作相同类型的应用程序。 :)