7

我目前正在学习 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';

那么正确的语法是什么?

4

7 回答 7

10
<?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."')";
于 2012-12-01T05:31:49.623 回答
9
$query = "INSERT INTO `" . $mysql_tb . "`
VALUES ('".$studno."','".$firstname."','".$lastname."')";
于 2012-12-01T05:26:34.927 回答
1
$mysql_tb = 'tb_registered_users';

$query = "SELECT `stud_no` FROM `".$mysql_tb."` WHERE `stud_no`='$studno'";
于 2012-12-01T05:26:45.270 回答
1

你可以这样做

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

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

于 2012-12-01T05:27:32.980 回答
1
$query = "SELECT `stud_no` FROM `".$mysql_tb."` WHERE `stud_no`='$studno'";

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

您可能还想考虑使用类似PDO的东西,它允许您使用命名参数并避免 SQL 注入。

于 2012-12-01T05:30:15.693 回答
1

如果使用双引号,也对我有用:

$newDataInput = "INSERT INTO $mysql_tb (Date,Time) VALUES ('$date','$time')";
于 2018-01-11T20:51:37.297 回答
1

顺便说一句,你也可以使用 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 希望有帮助

于 2019-08-26T10:52:06.553 回答