0

好的,两天后的第二个问题......我可能在这里犯了一个新手错误,但我被卡住了。

试图将域名插入到“名称”列下的表中。我所有的变量都会回显,所以我知道它们正在被传递和设置。

插入内容如下:

$newDomain = $_POST['newDomain']; //Get domain name
$newDomain_query =  mysql_query("INSERT INTO virtual_domains (name) VALUES ($newDomain)");
header("Location: domain_detail.php?domain=".$newDomain);

我尝试了许多编写此脚本的方法,但是每次我在包含以下内容时都会得到相同的结果:

or die(mysql_error)

在脚本中。查询没有运行,当我取出模具部分时,它只是跳转到标题位置。

4

3 回答 3

3

您需要确保在插入语句中用引号将字符串括起来。

试试这个:

$newDomain = $_POST['newDomain']; //Get domain name
$newDomain_query =  mysql_query("INSERT INTO virtual_domains (name) VALUES ('$newDomain')");
header("Location: domain_detail.php?domain=".$newDomain);
于 2012-09-07T02:47:24.280 回答
1

您缺少围绕您的价值的引号。查询应该是:

"INSERT INTO virtual_domains (name) VALUES ('$newDomain')"
于 2012-09-07T02:46:35.843 回答
1

扩展 Ken 的答案,让 mysql 使用 mysql_real_escape_string 处理引号的转义是一个好主意(特别是对于通过 post/get 发送的数据)。您可以使用以下方法执行此操作:

$newDomain = $_POST['newDomain']; //Get domain name
$newDomainEscaped = mysql_real_escape_string($newDomain);
$newDomain_query =  mysql_query("INSERT INTO virtual_domains (name) VALUES ('$newDomainEscaped')");
header("Location: domain_detail.php?domain=".$newDomain);

如果有人在他们的“newDomain”中意外使用撇号,或者更糟糕的是任何 SQL 注入,这将有助于防止任何错误。

于 2012-09-07T02:58:47.033 回答