如何在SQL查询中插入PHP常量?
我有一个PHP文件,其中数据库配置设置定义为常量,例如:如何在SQL查询中插入PHP常量?,php,mysql,sql,Php,Mysql,Sql,我有一个PHP文件,其中数据库配置设置定义为常量,例如: <?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); ?> 您必须使用字符串连接(任何类型) 常量不会像变量那样插
<?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);
?>
您必须使用字符串连接(任何类型) 常量不会像变量那样插入字符串 一种不切实际的替代方法是使用变量函数:
$const = 'constant';
$query = "SELECT users FROM {$const('DB_TABLE_1')}";
它将执行
constant()
函数并返回常量的值,但这通常不是一个好主意,如果只是为了可读性的缘故。只需将其放在引号之外,它应该可以正常工作:
$query = "SELECT users FROM ".DB_TABLE_1;
我认为这更容易:
$query = "SELECT users FROM '.DB_TABLE_1.'";
使用多个表时:
$query = "SELECT TB_1.users, TB_2.names FROM '.TB_1.'
INNER JOIN '.TB_2.'
ON x=y";
此外,这更好:
define("DB_HOST","localhost");
我找到了两种方法
一,-
二,-
我之所以使用倒勾(``),是因为我使用的是phpmyadmin,您可能不需要它们。如果PHP只知道常量和只读变量之间的区别……我偶然发现了您关于在查询中使用常量的答案,如果可能的话(这方面没有太多)。我认为这是一个相当好的主意,马克。有时,如果再往前走一两步,稍微有点粗俗会有助于防止注射。这与我不久前所做的工作相似,并取得了一些有希望的结果。
$query = "SELECT TB_1.users, TB_2.names FROM '.TB_1.'
INNER JOIN '.TB_2.'
ON x=y";
define("DB_HOST","localhost");
define("VALUE1", "someValue");
$query = "SELECT * FROM TABLE WHERE `Column` /*=" . VALUE1 . "*/";
define("VALUE1", "someValue");
define("VALUE2", "otherValue");
$query = "INSERT INTO TABLE (`Column1`, `Column2`) VALUES (" . VALUE1 . ", " . VALUE2 . ")";