繁体   English   中英

无法在 SQL 查询中用变量替换表名

[英]Can't replace table name with variable in SQL query

我有一个小问题。 这是我的请求(它有效):

 $reponse = $bdd->prepare('select * from student where UserName = ? and Password = ? ');
 $reponse->execute(array($name,$pass));

这是可行的,但是当我想用 php 变量替换“学生”时,它不起作用:/看:

 $table="stackoverflow"
 $reponse = $bdd->prepare('select * from '$table' where UserName = ? and Password = ? ');
 $reponse->execute(array($name,$pass));

你有什么想法吗? 如果我可以用变量替换表名会更简单。 对不起,我的英语不好。 谢谢你花时间陪我。

改变这个:

 $reponse = $bdd->prepare('select * from '$table' where UserName = ? and Password = ? ');

到:

 $reponse = $bdd->prepare("select * from `$table` where UserName = ? and Password = ? ");

在 PHP 中,您可以通过句点字符 (.) 连接两个字符串或变量。

因此,要连接表名和表名前后的语句,您应该更改这一行

$reponse = $bdd->prepare('select * from '$table' where UserName = ? and Password = ? ');

$reponse = $bdd->prepare('select * from '.$table.' where UserName = ? and Password = ? ');

由于表名是字符串,请尝试-

"SELECT * FROM from \"".$table."\" WHERE ....... ";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM