使用form中的输入作为变量从MySQL数据库中检索数据

时间:2016-03-23 12:58:46

标签: php mysql pdo

看起来像是我的一天。如果它让你感觉更好,你可能会帮助我保住我的工作(作为一个GRAPHIC设计师,但人们似乎忘记编程不一样......)。

所以,我之前的问题得到了成功回答,现在情况正常。但是,我希望能够使用文本输入字段在此表单中设置变量SOMETHING(如果我输入产品名称,它会显示所有数据)。

我现在得到的是变量硬编码:

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbname = 'test';
$dbpass = '';
$dbcharset = 'utf8';

$dsn = "mysql:host=$dbhost;dbname=$dbname;charset=$dbcharset";
$opt = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES   => false,
];
$pdo = new PDO($dsn, $dbuser, $dbpass, $opt);

$sql = 'SELECT Name, id, Variant, dim1 FROM products WHERE Name=?';
$stmt = $pdo->prepare($sql);
$stmt->execute(["SOMETHING"]);
$data = $stmt->fetchAll(PDO::FETCH_GROUP); 
?>


<?php 

foreach($data as $name => $products) {

        echo $name .'<br>';

foreach($products as $row) {
        echo $row['Variant'] .'<br>';
}


}


?>

这个文件名为testdb.php,我也有test.php设置输入框:

<html>
<body>

<form name='form' method='post' action="testdb.php">

Name: <input type="text" name="SOMETHING" id="SOMETHING"><br/>

<input type="submit" name="submit" value="Submit">  

</form>
</body>
</html>

我试着在testdb.php中定义它:

$something = $_POST['SOMETHING'];

与其他变量但它只给我一个空的结果。有任何想法吗?再次感谢!

1 个答案:

答案 0 :(得分:-1)

如果您想使用$_POST['SOMETHING']变量,可以将其放入请求执行中:

$stmt->execute([$_POST['SOMETHING']]);

不要忘记在检查POST变量之前:永远不要相信用户的输入! ;)

编辑:正如@Qirel所说,使用预准备语句

无需验证变量