$tablename = "channel";
mysql_query("INSERT INTO '".$tablename."' (episode_name,episode_title,episode_date)
values ('$videoname','$videotitle','$date')");
答案 0 :(得分:1)
在PHP中,双引号字符串文字将扩展标量变量。所以这可以像这样做
$sql = "INSERT INTO $tablename (episode_name,episode_title,episode_date)
values ('$videoname','$videotitle','$date')";
我认为您认为单引号是围绕表名称进行的,实际上它们在语法上并不正确。
您可以像这样
将表名和列名包装在反引号中$sql = "INSERT INTO `$tablename` (`episode_name`,`episode_title`,`episode_date`)
values ('$videoname','$videotitle','$date')";
将值(....)包装在单引号中的原因是告诉MYSQL这些是文本值,因此,如果将列定义为TEXT / CHAR / VARCHAR,则不仅是合法语法,还需要语法数据类型
但是我必须警告你
the
mysql_
database extension,它 不推荐使用(在PHP7中永远消失)特别是如果您只是学习PHP,请花费精力学习PDO
数据库扩展。 Start here非常简单
和
您的脚本面临SQL Injection Attack的风险 看看Little Bobby Tables偶然发生了什么 if you are escaping inputs, its not safe! 使用prepared statement and parameterized statements
答案 1 :(得分:0)
不要使用引号arround表名或使用反引号
mysql_query("INSERT INTO $tablename (episode_name,episode_title,episode_date)
values ('$videoname','$videotitle','$date')");
答案 2 :(得分:0)
"INSERT INTO `$tablename` (episode_name,episode_title,episode_date) values ('$videoname','$videotitle','$date')";
OR
"INSERT INTO `".$tablename."` (episode_name,episode_title,episode_date) values ('$videoname','$videotitle','$date')";