通过php向数据库添加信息时出错
我试图通过PHP向数据库添加信息。但是,当您提交表单时,它会显示“错误添加程序”。我查看了代码,似乎无法找到导致错误的原因。有什么建议吗 以下是表格代码:通过php向数据库添加信息时出错,php,mysql,database,Php,Mysql,Database,我试图通过PHP向数据库添加信息。但是,当您提交表单时,它会显示“错误添加程序”。我查看了代码,似乎无法找到导致错误的原因。有什么建议吗 以下是表格代码: <form name="Add" id="Add" method="post" action="programadd.php"> <p>Program Name: <input name="program" type="text" id="program" /> </p> &l
<form name="Add" id="Add" method="post" action="programadd.php">
<p>Program Name:
<input name="program" type="text" id="program" />
</p>
<p>Air Date
<input name="air date" type="text" id="airdate" />
</p>
<p>Description
<input name="description" type="text" id="description" />
</p>
<p>Production
<input name="production" type="text" id="production" />
</p>
<p>Promotions
<input name="promotion" type="text" id="promotion" />
</p>
<p>Community
<input name="community" type="text" id="community" />
</p>
<p>Web
<input name="web" type="text" id="web" />
</p>
<p>
<input type="submit" name="Submit" value="Submit" />
</p>
</form>
程序名称:
航空日期
描述
生产
晋升
社区
网
下面是将信息添加到数据库中的代码
<?php require_once("db_connx.php");
$program = $_POST['Program'];
$airdate = $_POST['Air Date'];
$description = $_POST['Description'];
$production = $_POST['Production'];
$promotion = $_POST['Promotions'];
$community = $_POST['Community'];
$web = $_POST['Web'];
if (mysql_query ("INSERT INTO 'Content Calendar' (Program, 'Air Date', Description, Production, Promotions, Community, 'Web') VALUES ('$program', '$airdate', '$description','$production', '$promotion', '$community', '$web')"))
{ echo "Program successfully added to the database <br />";
}
else
{ echo "Error adding program"; }
require_once("db_connx_close.php");
?>
不要在列名上使用单引号,而是使用反勾号,或者让它们保持原样
正确的方法。。。
这个(mysql.*
)扩展从php5.5.0
开始就被弃用,将来将被删除。相反,应使用或扩展的准备语句来抵御SQL注入攻击 问题就在这里
INSERT INTO
'Content Calendar' <--
(
Program,
'Air Date', <--
Description,
Production,
Promotions,
Community,
'Web' <--
拇指规则:
如果表名或列名为“Some name”,表示空格
在这两者之间,你必须用背面的记号把它们围起来``
如果您使用的是任何保留关键字,则它们也必须包含在内
在背后
更改这些行
if (mysql_query ("INSERT INTO 'Content Calendar' (Program, 'Air Date', Description, Production, Promotions, Community, 'Web') VALUES ('$program', '$airdate', '$description','$production', '$promotion', '$community', '$web')"))
{ echo "Program successfully added to the database <br />";
}
else
{ echo "Error adding program"; }
if(mysql_查询(“插入到‘内容日历’(节目,‘播放日期’、说明、制作、促销、社区、‘Web’)值(“$Program’、“$airdate’、“$Description’、“$Production’、“$promotion’、“$Community’、“$Web”)中)
{echo“程序成功添加到数据库
”;
}
其他的
{echo“添加程序时出错”;}
到
if(mysql_查询(“插入'Content Calendar'('Program'、'Air Date'、'Description'、'Production'、'promotion'、'Community'、'Community'、'Web`)值('$Program'、'$airdate'、'$Description'、'$promotion'、'$Community'、'$Web'))
{echo“程序成功添加到数据库
”;
}
其他的
{echo“添加程序时出错”;}
调试时,切勿输出固定的无用错误消息。您的else
应该更像die(mysql_error())
,这将告诉您查询失败的原因。以下是有关mysql库的常见警告:从PHP 5.5.0开始,此扩展已被弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展。在name=“air date”
和$\u POST['air date']
中有一个空格无效;使用下划线并分别进行其他更改。另外,您的表和列名中有一个空格,使用反勾号或下划线,您已经在中被告知了这一点;我记得你的代码中有太多错误,我无法回答。如果有人正好打在钉子头上;太好了。这个问题似乎离题了,因为已经有人告诉OP不要在表和/或列名中使用空格,而是使用下划线连接这两个单词。您现在已经引入了其他错误Air Date
必须被引用,因为它在名称中有一个空格,与Content Calendar
Thank Marc(已修改)相同,所以这会被视为保留字吗?@ShankarDamodaran:不,但是特殊字符。见@ShankarDamodaran谢谢@MarcB:)!!谢谢VMai。没问题,弗雷德!:)
INSERT INTO
`Content Calendar`
(
Program,
`Air Date`,
Description,
Production,
Promotions,
Community,
Web
if (mysql_query ("INSERT INTO 'Content Calendar' (Program, 'Air Date', Description, Production, Promotions, Community, 'Web') VALUES ('$program', '$airdate', '$description','$production', '$promotion', '$community', '$web')"))
{ echo "Program successfully added to the database <br />";
}
else
{ echo "Error adding program"; }
if (mysql_query ("INSERT INTO `Content Calendar` (`Program`, `Air Date`, `Description`, `Production`, `Promotions`, `Community`, `Web`) VALUES ('$program', '$airdate', '$description','$production', '$promotion', '$community', '$web')"))
{ echo "Program successfully added to the database <br />";
}
else
{ echo "Error adding program"; }