将多个变量放入sql语句中

时间:2010-06-02 23:21:27

标签: php

我构建了以下内容 -

`$format_$game_$name_$season`

4个带下划线的变量。这应该有效,还是作为一个变量?

THANKYOU

4 个答案:

答案 0 :(得分:3)

快速测试表明,由于我无法理解的原因,你的插值将无法按预期工作。

<?php
    $xa = 'x';
    $xb = 'y';
    $xc = 'z';
    echo "$xa_$xb_$xc";
?>

PHP 5.3中上述脚本的输出为z,因为它显示的是$xa_(空的),$xb_(空的)和$xcz)。

但是,如果使用大括号进行插值,则应获得所需的输出。

<?php
    $xa = 'x';
    $xb = 'y';
    $xc = 'z';
    echo "${xa}_${xb}_${xc}";
?>

PHP 5.3中上述脚本的输出正如预期的那样x_y_z

答案 1 :(得分:2)

有用信息

使用反引号(``)分隔符,您的变量将为空。

使用单引号('),它将按字面解释。

使用双引号("),您应该获得变量插值(在大多数情况下,期望您的问题中描述的情况)。您也可以使用大括号来提高可读性,以及在没有大括号的情况下使用大括号,即{$var['key']}

答案 2 :(得分:2)

不会工作,但不是因为它会充当一个变量。

首先,您需要使用双引号。反引号根本不会解释,变量不会在单引号字符串中扩展。进一步阅读:String Parsing

此外,当双引词时,它将被解释为$format_ . $game_ . $name_ . $season。也就是说,PHP会认为三个第一个变量以下划线结尾。您必须执行$format . '_' . $game . '_' . $name . '_' . $season"{$format}_{$game}_{$name}_{$season}"

答案 3 :(得分:1)

  

这应该起作用,还是起作用   一个变量?

不会,不。

1)您应该使用PDO进行数据库访问(我需要这样说!)

解决这个问题:

2)反引号为execution operators

3)变量可以用大括号括起来:"{$format}_{$game}_{$name}_{$season}"

4)有些数据库使用下划线作为特殊字符,因此可能需要进行转义