【发布时间】:2017-01-11 02:08:58
【问题描述】:
我有一张名为cms_settings 的表。我用前缀 cms_ 命名所有表格,所以我创建了一个变量 $dbpraefix="cms_"
当我使用“从 $dbpraefix.settings 中选择值”命令调用该条目时,它无法继续。
我也试过不同的版本。比如“从 '.$dbpraefix.'settings 中选择等等。没有任何效果。
但是如果我改用“从cms_settings 中选择值,它可以工作!我该如何解决这个问题。非常感谢
<?PHP
function getSetting($property){
global $connection;
$dbpraefix= "cms_";
$sql= "SELECT value FROM $dbpraefix.settings WHERE property='$property'";
$ergebnis= mysqli_query($connection, $sql);
$row = mysqli_fetch_row($ergebnis);
return $row[0];
}
?>
【问题讨论】:
-
警告:当使用
mysqli时,您应该使用parameterized queries 和bind_param将用户数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了一个严重的SQL injection bug。 切勿将$_POST或$_GET数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。 -
谢谢塔德曼。我是 PHP 新手,所以我还是不明白你的建议。但我会在 6 个月后再次看到这篇文章 :) 我希望在那里能理解它。
-
如果这段代码是公开的,有很多危险的人会探查你的网站并寻找问题。不要被抓到。使用占位符值并不难,而且实际上使您的代码更清晰、更易于阅读。
-
这个问题还没有解决吗?我没有看到任何可接受的答案。
标签: php mysql database select hyperlink