【问题标题】:Echo Database Output [duplicate]Echo 数据库输出 [重复]
【发布时间】:2015-11-19 19:02:59
【问题描述】:

我在 MySQL 中有一个名为 myshop 的数据库。我正在尝试创建一个 html 页面 (http://pastie.org/10568087),用户在其中输入名字,然后 php 页面采用该名字并在数据库中查找该名称并回显它。

<?php
$firstName = $_POST["firstname"];
try {
    $dbh = new PDO('mysql:localhost=localhost;dbname=myshop', "root", "mypassword");
    $rows = $dbh->query("SELECT * FROM people WHERE firstname = $firstName");

    foreach ($rows as $row) {
        echo "First Name:  " . $row["first_name"] . "<br/>";
    }
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
?>

当我删除“WHERE firstname = $firstName”时,我可以回显所有名称。但这不是我想要的,我只是想要这个名字。无需创建新输入。有什么问题?

【问题讨论】:

标签: php html mysql database


【解决方案1】:

试试

"SELECT * FROM people WHERE firstname = '{$firstName}'"

我已经引用了发布的文本 ($firstName),以便在查询中将其视为刺痛。

【讨论】:

  • 可爱的;让他们接受甜蜜的'ol SQL注入。 尝试....那些属于cmets。
  • @Zee 你必须使用bind param。会很安全的。
  • @Fred-ii- 当然它现在对 SQL 注入开放,但解决方案是解决问题。提问者无法得到结果。解决方案是得到结果。休息一下,SQL 注入是建议。
  • 我想知道你是否可以使用“where”两次。就像用户想要输入名字和姓氏一样。如何从数据库中回显匹配的名字和姓氏,而不仅仅是名字?
猜你喜欢
  • 2017-07-16
  • 1970-01-01
  • 2019-06-01
  • 1970-01-01
  • 2017-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多