首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SQL查询中插入PHP常量?

问如何在SQL查询中插入PHP常量?
EN

Stack Overflow用户
提问于 2012-01-17 01:33:21
回答 4查看 10.5K关注 0票数 7

我有一个PHP文件,其中我的数据库配置设置定义为常量,例如:

代码语言:javascript
复制
<?php

define(DB_HOST,"localhost");
define(DB_USERNAME,"root");
define(DB_PASSWORD,"password");
define(DB_NAME,"db_users");
define(DB_TABLE_1,"table_1");
define(DB_TABLE_2,"table_2);

?>

显然,每当我想要连接到我的database..However时,我都会包含上面的文件,当我将表定义常量插入到SQL查询中时(见下文),它似乎不起作用。我是否需要正确地转义常量或以某种方式连接常量?

代码语言:javascript
复制
$query = "SELECT users FROM DB_TABLE_1";
EN

回答 4

Stack Overflow用户

发布于 2012-01-17 01:34:17

您必须使用字符串连接(任何类型)。

代码语言:javascript
复制
$query = "SELECT users FROM " . DB_TABLE_1;

常量不会像变量那样插入到字符串中。

一个简单的替代方法是使用一个变量函数:

代码语言:javascript
复制
$const = 'constant';
$query = "SELECT users FROM {$const('DB_TABLE_1')}";

它将执行constant()函数并返回常量的值,但为了便于阅读,这通常不是一个好主意。

票数 17
EN

Stack Overflow用户

发布于 2012-01-17 01:34:44

只要把它放在引号之外,它就会工作得很好:

代码语言:javascript
复制
$query = "SELECT users FROM ".DB_TABLE_1;
票数 5
EN

Stack Overflow用户

发布于 2014-11-21 07:21:19

我找到了两种方法。

1.-

代码语言:javascript
复制
define("VALUE1", "someValue");
$query = "SELECT * FROM TABLE WHERE `Column` /*=" . VALUE1 . "*/";

2.-

代码语言:javascript
复制
define("VALUE1", "someValue");
define("VALUE2", "otherValue");
$query = "INSERT INTO TABLE (`Column1`, `Column2`) VALUES (" . VALUE1 . ", " . VALUE2 . ")";

我使用的反引号()是因为我使用的是phpmyadmin,您可能不需要它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8883911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档