这似乎是一个非常愚蠢的问题,但我不知道是否可能。我正在尝试编写一个函数,如下所示:
function checkDuplicates($input) {
$result = pg_query('SELECT username FROM accounts WHERE LOWER(username)=\''.strtolower(pg_escape_string($input)).'\'') or exit(pg_last_error());
}
并且我想用传入的变量的名称替换“用户名”。例如,如果我调用了checkDuplicates($email)
,我基本上希望调用以下函数:
function checkDuplicates($email) {
$result = pg_query('SELECT email FROM accounts WHERE LOWER(email)=\''.strtolower(pg_escape_string($email)).'\'') or exit(pg_last_error());
}
有没有办法做到这一点?
您需要将该列作为第二个参数传递。将参数变量名称从 $input 更改为 $email 实际上不会影响调用函数的方式。
你可以简单地做:
function checkDuplicates($col, $val, $return_col) {
$result = pg_query('SELECT '.$return_col.' FROM accounts WHERE LOWER('.$col.')=\''.strtolower(pg_escape_string($val)).'\'') or exit(pg_last_error());
}
执行此操作时,请将常见的 SQL 注入危险牢记在心。您可能希望通过白名单等运行$col
和$return_col
输入。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句