【发布时间】:2014-10-29 20:57:29
【问题描述】:
我不确定这是否可行,但我正在尝试构建一个可以构建 MYSQL 查询的函数。
它有一个基本查询。如果 URL 有一个 get 值 (script.php?game=AGame),它将获取该 get 变量并重命名它。然后,该脚本将相应地附加完成 MYSQL 查询所需的数据。
function build_query($getvar, $renamevar, $dbfield){
$query = "SELECT * FROM release_dates ";
$arguments = 0;
if(isset($_GET['$getvar'])){
$renamevar = $_GET['$getvar'];
if($arguments >= 1){
$query .= "AND '$dbfield' = '$renamevar' ";
$arguments = $arguments +1;
}
else{
$query .= "'$dbfield' = '$renamevar' ";
}
}
}
build_query(g, game, game_title);
但是,在运行代码时出现以下错误:
注意:使用未定义的常量游戏 - 在第 46 行 /www/sites/164/index.php 中假定为“游戏”
注意:使用未定义的常量 g - 在 /www/sites/164/index.php 第 46 行假定为“g”
注意:使用未定义的常量 game_title - 在 /www/sites/164/index.php 第 46 行假定为“game_title”
任何帮助将不胜感激。
【问题讨论】:
-
当您意识到 3 件事时,这是可能的:1. 关联数组键类型是字符串 2. 尝试首先将
var_dump作为键传递的内容 3. 字符串文字包含在单个或双引号 -
和 4. 字段名不包含在单引号中。要么什么都没有,要么反引号。 IE。 `
-
您的代码容易受到 SQL 注入攻击。在编写与数据库对话的生产代码之前,请研究此主题。
-
5.此外,您在函数内部的逻辑是错误的,$arguments 将始终为 0,就像现在一样。 6.您“构建”查询但不以任何方式使用/返回它。 7. 请重新审视整个事情。
标签: php mysql variables get variable-variables