使用PHP插入MySQL

时间:2015-04-30 06:29:46

标签: php mysql

我已经解决了这个问题两个小时了。我很可能只是错过了一些非常明显的东西。基本上,我无法将这些查询中的任何一个实际插入到服务器中。 我已手动将数据添加到服务器,并且没有任何问题。 我的其他脚本 成功地向服务器添加内容。 我已经使用ping功能确认我已连接到服务器。 而且我还浏览了输入列表,以确保没有添加任何意外情况。

我不知道还有什么可以尝试。     

$Name = $_POST['Project_Name'];
$Description = $_POST['Description'];
$Languages = $_POST['Languages'];
$dateposted = $_POST['DatePosted'];
$Spots = $_POST['Spots'];
$Comments = $_POST['Comments'];
$PostingUser = $_SESSION['UserID'];

if(!empty($Name) AND !empty($dateposted))
{
    mysql_query("
INSERT INTO Project
(ProjName
, Slots
, CurrentSlots
, Date_Posted
, Languages
, ProjDescription
, ProjType
, Comments
, AddingUser
) VALUES
('$Name'
, '$Spots'
, '0'
, '$dateposted'
, '$Languages'
, '$Description'
, NULL
, '$Comments'
, '$PostingUser')
");
    mysql_query("INSERT INTO PostedBy(fk_pb_ProjName, fk_pb_Username)VALUES('$Name', '$PostingUser')");
    header("refresh: 1; url=Add-Project.html");
    echo " Project Submitted. Returning to main list.";
}
?>

这是PHP代码,这是两个SQL表。

项目:

CREATE TABLE Project
(
  ProjName VARCHAR(100) NOT NULL,
  Slots INT NOT NULL,
  CurrentSlots INT,
  Date_Posted VARCHAR(10) NOT NULL,
  Languages VARCHAR(40),
  ProjDescription VARCHAR(255),
  ProjType VARCHAR(10),
  Comments VARCHAR(255),
  AddingUser VARCHAR(7),
  FOREIGN KEY (AddingUser) references Users(Username),
  PRIMARY KEY(ProjName)
);

PostedBy:

CREATE TABLE PostedBy
(
  fk_pb_ProjName VARCHAR(100),
  fk_pb_Username VARCHAR(7) NOT NULL,
  PRIMARY KEY (fk_pb_ProjName),
  FOREIGN KEY (fk_pb_Username) references Users(Username),
  FOREIGN KEY (fk_pb_ProjName) references Project(ProjName)
);

这是我第一次使用PHP和MySQL做任何实质性的事情,所以我很可能会忽略一些非常简单的事情。

2 个答案:

答案 0 :(得分:4)

OLD

 mysql_query("INSERT INTO Project(ProjName, Slots, CurrentSlots, Date_Posted, Languages, ProjDescription, ProjType, Comments, AddingUser)VALUES('$Name', '$Spots', '0', $dateposted, '$Languages', '$Description', NULL, '$Comments', '$PostingUser')");

AND NEW

mysql_query("INSERT INTO Project(ProjName, Slots, CurrentSlots, Date_Posted, Languages, ProjDescription, ProjType, Comments, AddingUser)VALUES('$Name', '$Spots', '0', ------->'$dateposted'<-----, '$Languages', '$Description', NULL, '$Comments', '$PostingUser')");

请务必将单引号放在要查询的每个变量上!我认为这就是问题..转到你的日期发布变量这是问题应该存在的地方

答案 1 :(得分:0)

看看这一行:

 mysql_query("INSERT INTO PostedBy(fk_pb_Name, fk_pb_Username)VALUES('$Name', '$PostingUser')"

并在您的表定义中:

fk_pb_ProjName VARCHAR(100),

这些不匹配。

除此之外:(在切换到mysqli或PDO之后)阅读显示MySQL错误并将其打印出来。

编辑: 对于mysqli,请检查:http://php.net/manual/en/mysqli.error.php