【问题标题】:Using XQuery with PHP Variables将 XQuery 与 PHP 变量一起使用
【发布时间】:2014-03-05 07:28:50
【问题描述】:

我正在尝试使用 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';

【问题讨论】:

    标签: php xml variables xquery


    【解决方案1】:

    对于 PHP,这只是一个 string。您使用的是单引号,因此字符串中的变量不会被替换。您可以将静态部分与动态部分连接起来,使用双引号字符串,使用sprintf(),...

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

    根据您使用字符串的方式,可以选择准备好的语句。他们负责避免 SQL 注入可能需要的转义。

    【讨论】:

      【解决方案2】:

      谢谢! 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';
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-27
        • 2014-03-02
        • 1970-01-01
        • 1970-01-01
        • 2014-09-05
        • 2011-09-16
        • 1970-01-01
        • 2017-06-03
        相关资源
        最近更新 更多