使用php pdo准备的语句从mysql数据填充表

使用php pdo准备的语句从mysql数据填充表,php,pdo,prepared-statement,Php,Pdo,Prepared Statement,我一直在尝试将mysql语句切换到PDO和Prepared语句,但没有得到它。我有一个表单,用户可以输入数据,然后发布到mysql数据库。我相信我已经弄明白了,因为它确实有效。这是代码 $stmt = $dbh->prepare("INSERT INTO info(lakeid, name, size, depth, access, sports, beach, atlantic, bluegill, brook, brown, catfish,

我一直在尝试将mysql语句切换到PDO和Prepared语句,但没有得到它。我有一个表单,用户可以输入数据,然后发布到mysql数据库。我相信我已经弄明白了,因为它确实有效。这是代码

    $stmt = $dbh->prepare("INSERT INTO info(lakeid, name, size, depth, access, sports, beach, atlantic, 
                bluegill, brook, brown, catfish, coho, crappie, king, lake, largemouth, muskie,
                pike, perch, pumkinseed, rainbow, rock, smallmouth, steelhead, sturgeon, walleye, 
                comments) 
            VALUES (:lakeid, :name, :size, :depth, :access, :sports, :beach, :atlantic, :bluegill, 
                :brook, :brown, :catfish, :coho, :crappie,:king, :lake, :largemouth, :muskie, :pike, 
                :perch, :pumkinseed, :rainbow, :rock, :smallmouth, :steelhead, :sturgeon, :walleye, 
                :comments )");

            $stmt->bindParam(':lakeid', $lakeid, PDO::PARAM_STR);
            $stmt->bindParam(':name', $name, PDO::PARAM_STR);
            $stmt->bindParam(':size', $size, PDO::PARAM_STR);
            $stmt->bindParam(':depth', $depth, PDO::PARAM_STR);
            $stmt->bindParam(':access', $access, PDO::PARAM_STR);
            $stmt->bindParam(':sports', $sports, PDO::PARAM_STR);
            $stmt->bindParam(':beach', $beach, PDO::PARAM_STR);
            $stmt->bindParam(':atlantic', $atlantic, PDO::PARAM_STR);
            $stmt->bindParam(':bluegill', $bluegill, PDO::PARAM_STR);
            $stmt->bindParam(':brook', $brook, PDO::PARAM_STR);
            $stmt->bindParam(':brown', $brown, PDO::PARAM_STR);
            $stmt->bindParam(':catfish', $catfish, PDO::PARAM_STR);
            $stmt->bindParam(':coho', $coho, PDO::PARAM_STR);
            $stmt->bindParam(':crappie', $crappie, PDO::PARAM_STR);
            $stmt->bindParam(':king', $king, PDO::PARAM_STR);
            $stmt->bindParam(':lake', $lake, PDO::PARAM_STR);
            $stmt->bindParam(':largemouth', $largemouth, PDO::PARAM_STR);
            $stmt->bindParam(':muskie', $muskie, PDO::PARAM_STR);
            $stmt->bindParam(':pike', $pike, PDO::PARAM_STR);
            $stmt->bindParam(':perch', $perch, PDO::PARAM_STR);
            $stmt->bindParam(':pumkinseed', $pumkinseed, PDO::PARAM_STR);
            $stmt->bindParam(':rainbow', $rainbow, PDO::PARAM_STR);
            $stmt->bindParam(':rock', $rock, PDO::PARAM_STR);
            $stmt->bindParam(':smallmouth', $smallmouth, PDO::PARAM_STR);
            $stmt->bindParam(':steelhead', $steelhead, PDO::PARAM_STR);
            $stmt->bindParam(':sturgeon', $sturgeon, PDO::PARAM_STR);
            $stmt->bindParam(':walleye', $walleye, PDO::PARAM_STR);
            $stmt->bindParam(':comments', $comments, PDO::PARAM_STR);

            $stmt->execute();
我的问题是如何将这些信息打印回原始页面中的表格中。我试过几本教程,但似乎都没用。任何关于这方面的建议都会很有帮助。 非常感谢

以下是用于将用户输入打印到表中的编辑代码。再说一次,我对PDO了解不多,但我努力防止注射。这实际上会将所有正确的输入打印到表中。还有什么我应该担心的吗? 谢谢你的回复

        $stm = $dbh->prepare("SELECT * FROM info WHERE lakeid = ?");
        $stm->execute(array("$counties"));
        $data = $stm->fetchAll();



Print "<table border cellpadding=5>"; 
    Print "<tr><th>Name:</th> <th>Size:</th> <th>Depth:</th> <th>Boat Access:</th> <th>All Sports:</th> <th>Public Beach:</th> <th>Fish Species:</th> <th>Comments:</th></tr>"; 
    foreach($data as $inform  ) 

    {
    Print "<tr>"; 
    Print " <td>" .$inform['name']."</td> "; 
    Print "<td>".$inform['size'] . " </td>";
    Print " <td>".$inform['depth'] . "</td> "; 
    Print " <td>".$inform['access'] . "</td> "; 
    Print " <td>".$inform['sports'] . "</td> "; 
    Print " <td>".$inform['beach'] . " </td>";
    Print" <td>".$inform['atlantic'] ."\n". $inform['bluegill']. "\n". $inform['brook']. "\n". $inform['brown']. 
    "\n". $inform['catfish']. "\n". $inform['coho']. "\n". $inform['crappie']. "\n". $inform['king']. "\n". $inform['lake']. 
    "\n". $inform['largemouth']. "\n". $inform['muskie']. "\n". $inform['pike']. "\n". $inform['perch']. "\n". $inform['pumkinseed'].  
    "\n". $inform['rainbow']. "\n". $inform['rock']. "\n". $inform['smallmouth']. "\n". $inform['steelhead'].  "\n". $inform['sturgeon'].
    "\n". $inform['walleye'].   "</td>";
    Print " <td>".$inform['comments'] . "</td> "; "</tr>"; 
    } 

    Print "</table>"; 
$stm=$dbh->prepare(“从lakeid=?”的信息中选择*”;
$stm->execute(数组(“$countries”);
$data=$stm->fetchAll();
打印“”;
打印“名称:尺寸:深度:船只通道:所有运动项目:公共海滩:鱼类种类:评论:”;
foreach($inform形式的数据)
{
打印“”;
打印“$inform['name']”;
打印“$inform['size']”;
打印“$inform['depth']”;
打印“$inform['access']”;
打印“$INFORT['sports']”;
打印“$INFORT['beach']”;
打印“$inform['ATLANCT']”。\n“$inform['bluegill']”。\n“$inform['BROWK']”。\n“$inform['brown']”。
“\n”。$inform['catfish']。”\n.$inform['coho']。“\n”。$inform['crappie']。“\n”。$inform['king']。”\n.$inform['lake']。
“\n”。$inform['largemouth']”。“\n”。$inform['muskie']”。“\n”。$inform['pike']”。“\n”。$inform['perch']”。“\n”。$inform['pumkinseed']。
“\n”。$inform['rainbow']。”\n.$inform['rock']。“\n”。$inform['smallmouth']。“\n”。$inform['steelhead']。”\n.$inform['sturgeon']。
“\n”。$INFORT['walleye']”;
打印“$inform['comments']”;
} 
打印“”;

我想知道您尝试了什么教程,但您的检索尝试违反了所有SQL规则

$stm = $dbh->prepare("SELECT * FROM info");
$stm->execute();
$data = $stm->fetchAll();
?>
<table>
<? foreach ($data as $row): ?>
  <tr>
<? foreach ($row as $value): ?>
    <td><?=$value?></td>
<? endforeach ?>
  </tr>
<? endforeach ?>
</table>
$stm=$dbh->prepare(“从信息中选择*);
$stm->execute();
$data=$stm->fetchAll();
?>

这只是一个例子。我相信你首先需要一个关于基本SQL的教程

请将您尝试过的代码添加到您的问题中,好吗?我相信如果我理解,您必须在您的页面上运行一个select查询,在where子句中显示结果where,您将把id作为lastInsertId()-我知道我对此完全陌生,这给了我一些研究的机会。当你是新手时,很难找到第一眼该看什么。谢谢你的回复。我编辑了代码,现在它真的可以工作了。有人知道我需要做的安全性工作(比如sql注入)是否就是这些吗。