在带有连接的sql语句中使用php变量

时间:2015-05-13 13:29:28

标签: php sql string variables concatenation

我在下面有一个变量(storecode),它从用户的输入中得到它的值(120)

<script>
    function getClientViewTemplate(data) {
        var template = kendo.template($('#clientViewTemplate').html());
        var result = template({ text: data });
        return result;
    }
</script> 

在PL / SQL Developer中工作的sql是$storecode = $_POST['storecode']; ;

我试图将$ storecode变量替换为&#34; 120&#34;然后连接&#34; 081&#34;所以我有:

Select mydate from tbl_store@rm_database.p120081

显然以上是错误的,需要一些指导来解决这个问题

2 个答案:

答案 0 :(得分:1)

您可以创建一个新的变量table_name,并将连接的databasename.tablename添加到该变量,如

var table_name = 'tbl_store@rm_database.p'.$storecode.'081'

然后在您的查询中,您可以将此变量用作

"SELECT mydate from ".$table_name;

我不是php开发人员这只是因为我根据我的PHP基本知识共享代码,所以你需要解决语法错误。

答案 1 :(得分:0)

表达式中的单引号被添加到表名中,假设为$storecode = 120,此语句为:

 "SELECT mydate from tbl_store@rm_database.p'$storecode'081";

...导致文字表名为tbl_store@rm_database.p'120'081

您可以按照其他答案中的建议进行连接;但是,您可以在知识variable parsing的情况下在字符串定义中获得相同的结果(在Variable Parsing部分下查找Simple Syntax)。

 "SELECT mydate from tbl_store@rm_database.p{$storecode}081";
  

如果遇到美元符号($),解析器将贪婪地获取尽可能多的令牌以形成有效的变量名称。将变量名括在花括号中,以明确指定名称的结尾。

如果没有大括号,解析器会尝试引用变量$storecode081

所以你原来是正确的,你只需要括号语法而不是单引号。