PHP:使用变量来保存表名,并在查询中使用该变量

时间:2012-12-01 05:25:14

标签: php mysql database variables

我目前正在学习PHP,而且我正在编写注册表。 在我的代码中的某处我有这些陈述

$query = "SELECT `stud_no` FROM `tb_registered_users` WHERE `stud_no`='$studno'";

$query = "INSERT INTO `tb_registered_users`
VALUES ('".$studno."','".$firstname."','".$lastname."')";

但我希望声明这个变量并在上面提到的查询中使用它

$mysql_tb = 'tb_registered_users';

那么这个的正确语法是什么?

7 个答案:

答案 0 :(得分:8)

$query = "INSERT INTO `" . $mysql_tb . "`
VALUES ('".$studno."','".$firstname."','".$lastname."')";

答案 1 :(得分:7)

<?php
$mysql_tb = 'tb_registered_users';
$query = "SELECT `stud_no` FROM `{$mysql_tb}` WHERE `stud_no`='$studno'";
$query = "INSERT INTO `{$mysql_tb}` VALUES ('".$studno."','".$firstname."','".$lastname."')";

答案 2 :(得分:0)

$mysql_tb = 'tb_registered_users';

$query = "SELECT `stud_no` FROM `".$mysql_tb."` WHERE `stud_no`='$studno'";

答案 3 :(得分:0)

你可以这样做

$query = "SELECT `stud_no` FROM " . $mysql_tb . " WHERE `stud_no`='$studno'";

但我建议调查PDO(http://www.php.net/manual/en/book.pdo.php&amp;&amp; http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/)。

答案 4 :(得分:0)

$query = "SELECT `stud_no` FROM `".$mysql_tb."` WHERE `stud_no`='$studno'";

$query = "INSERT INTO `".$mysql_tb."` VALUES ('".$studno."','".$firstname."','".$lastname."')";

您可能还希望使用类似PDO的内容来允许您使用命名参数并避免SQL注入。

答案 5 :(得分:0)

如果使用双引号也适用于我:

$newDataInput = "INSERT INTO $mysql_tb (Date,Time) VALUES ('$date','$time')";

答案 6 :(得分:0)

顺便说一句,您还可以使用sprintf函数执行如下所示的相同操作

(PHP 4,PHP 5,PHP 7) sprintf —返回格式化的字符串

$mysql_tb = 'tb_registered_users';
$query1 = sprintf("SELECT `stud_no` FROM `%s` WHERE `stud_no`='$studno'",$mysql_tb);
$query2 = sprintf("INSERT INTO `%s` VALUES ('".$studno."','".$firstname."','".$lastname."')",$mysql_tb);

只需将%s放在要替换值的位置,然后将第二个参数用作变量,如此处所示。它与c语言和c ++中的功能相同。您也可以用多个参数替换多个值。这是php手册帮助

https://www.php.net/manual/en/function.sprintf.php 希望有帮助