我正在尝试创建一个表,其名称是存储在变量$name中的值的值.我尝试了很多不同的方法,但似乎没有一个适合我.这是我目前使用的代码:
mysql_connect("localhost", "peltdyou_admin", "123456") or die(mysql_error());
mysql_select_db("peltdyou_orders") or die(mysql_error());
mysql_query("CREATE TABLE '" .$_POST['name']. "' ( name VARCHAR(30), age INT, car VARCHAR(30))");
我知道这与”.$_ POST [‘name’]有关.“’但我无法解决问题.
我在其位置尝试了’$name’,它从代码中获得了它的价值.
任何帮助都会很棒!
解决方法:
在表名周围使用反引号,而不是引号.逃避输入!此外,虽然这适用于localhost,但请确保在生产服务器上运行的用户具有CREATE表的权限(当然,通常不是,AFAIK,在共享主机上).
一句警告:你真的确定要在用户输入上创建一个表吗?你要以这种方式创建多少个表?难道你不能只重新设计整个事物,以便插入值吗?
$name = mysql_real_escape_string($_POST['name']);
mysql_query("CREATE TABLE `".$name."` ( name VARCHAR(30), age INT, car VARCHAR(30))");
标签:php,mysql
来源: https://codeday.me/bug/20190715/1469769.html