[英]Using PHP variables inside SQL statements?
由于某种原因,我无法在mysql语句内传递var。 我有一个可以用于多个表的函数。 因此,与其重复代码,我不想更改从中选择的表,
function show_all_records($table_name) {
mysql_query("SELECT * FROM $table_name");
etc, etc...
}
并调用该函数,我使用show_all_records("some_table")
或show_all_records("some_other_table")
取决于我现在要从哪个表中选择。 但这不起作用,这是因为变量无法通过mysql语句传递吗?
您粘贴的代码必须有效。 造成这种情况的可能原因是:
'SELECT * FROM $table_name'
(单引号而不是双引号) $table_name
尝试die("SELECT * FROM $table_name");
然后您会确切地知道出了什么问题!
尝试
$results = mysql_query("SELECT * FROM $table_name") or die(mysql_error());
告诉我们这是什么意思。 理论上,$ table_name应该解析为字符串,因为它位于“”而不是“”中
我最近在SQL,PHP和MySQL方面的经验告诉我,无论是在PHP脚本内部还是在phpMyAdmin中通过SQL交互,我都应编写如下所示的SQL语句以使它们起作用。 否则我的查询不起作用。 我只是修改您上面发布的相同代码,以概括一下我的想法。 并给出有效的一般规则。
请注意,无论是表示自身的数据还是表示该数据的变量名称,任何值(记录值不是数据库名称,表名称或列名称)都应使用单引号引起来。 我的意思是'
标志。 php语言中的可变范围也应该被视为一贯,这是另一回事。
function show_all_records($table_name) {
mysql_query("SELECT `Username` FROM `$table_name` WHERE `Username` = 'edwin'");
etc, etc...
}
在SQL中,我发现我应该遵循以下语法规则来使我的查询正常工作:
"
商标”。 '
标记。 您的查询看起来不错。 无法看到为什么这行不通。 您是否已在代码中的其他位置使用mysql_connect()正确连接到数据库? 连接建立了吗? 您要连接的用户在您要访问的表上是否具有SELECT权限?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.