我可以';我没有看到我在phpmyadmin上使用表单添加的数据


I can't see data I have added using forms on phpmyadmin

我正在使用php和mysql向数据库添加数据。当我将数据添加到表单并提交数据时,我会收到一条消息,说数据已成功添加。然而,当我在phpmyadmin上查看数据库时,我看到的只是一个空白行,除了主键什么都没有。该数据库存储用户输入的板球运动员。更新:我像大家说的那样把冒号放进去了,现在IF语句回来说不能添加数据。所以现在它根本没有添加任何内容。这是我的代码:

$fname=$_POST['fname'];
$lname=$_POST['lname'];
$dob=$_POST['dob'];
$teamrole=$_POST['teamrole'];
$testruns=$_POST['testruns'];
$testwickets=$_POST['testwickets'];
$odiruns=$_POST['odiruns'];
$odiwickets=$_POST['odiwickets'];
$truns=$_POST['truns'];
$twickets=$_POST['twickets'];
$searchteam=$_POST['searchteam'];
$query="INSERT INTO player VALUES (NULL, :First_Name, :Last_Name, :Date_of_Birth, :Team_Role, :Test_Runs, :Test_Wickets, :ODI_Runs, :ODI_Wickets, :t20_Runs, :t20_Wickets, :TeamID) ";
$stmt=$conn->prepare($query);
$stmt->bindValue(':First_Name', $fname);
$stmt->bindValue(':Last_Name', $lname);
$stmt->bindValue(':Date_Of_Birth', $dob);
$stmt->bindValue(':Team_Role', $teamrole);
$stmt->bindValue(':Test_Runs', $testruns);
$stmt->bindValue(':Test_Wickets', $testwickets);
$stmt->bindValue(':ODI_Runs', $odiruns);
$stmt->bindValue(':ODI_Wickets', $odiwickets);
$stmt->bindValue(':t20_Runs', $truns);
$stmt->bindValue(':t20_Wickets', $twickets);
$stmt->bindValue(':TeamID', $searchteam);
$affected_rows = $stmt->execute();
if($affected_rows==1)
{
    echo "Successfully added the details for ".$fname;
}
else
{
    echo "Could not add data for ".$fname;
}

查询中的绑定名称错误-删除`characters并使用分号(根据绑定变量)。此外,当您插入新行时,您不会指定主键,因为它应该是自动生成的。

$query = "INSERT INTO `player` VALUES (null, :First_Name, :Last_Name, :Date_of_Birth, :Team_Role, :Test_Runs, :Test_Wickets, :ODI_Runs, :ODI_Wickets, :t20_Runs, :t20_Wickets, :TeamID) ";

文档:http://php.net/manual/en/pdostatement.bindparam.php

您的查询构造不太正确,您需要使用:添加参数,类似这样;

$query="INSERT INTO `player` (`First_Name`, `Last_Name`, `Date_of_Birth`, 
           `Team_Role`, `Test_Runs`, `Test_Wickets`, `ODI_Runs`, `ODI_Wickets`,
           `t20_Runs`, `t20_Wickets`, `TeamID`)
           VALUES (:First_Name, :Last_Name, :Date_of_Birth, :Team_Role, 
                   :Test_Runs, :Test_Wickets, :ODI_Runs, :ODI_Wickets,
                   :t20_Runs, :t20_Wickets, :TeamID)";

请注意,由于它是自动生成的,因此应该省略PlayerID主键的值,只有在列出实际要插入值的列时才能这样做。

第二个好处是,如果您决定向表中添加字段,这样列出查询中涉及的字段可以防止插入因缺少列而失败。

您的sql不正确。您正在绑定以冒号开头的参数,但sql语句不包括它们

$query="INSERT INTO `player` VALUES (NULL, :First_Name, :Last_Name ...

反勾号也是MySQL的字段分隔符。