看起来像是我的一天。如果它让你感觉更好,你可能会帮助我保住我的工作(作为一个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'];
与其他变量但它只给我一个空的结果。有任何想法吗?再次感谢!
答案 0 :(得分:-1)
如果您想使用$_POST['SOMETHING']
变量,可以将其放入请求执行中:
$stmt->execute([$_POST['SOMETHING']]);
不要忘记在检查POST变量之前:永远不要相信用户的输入! ;)
编辑:正如@Qirel所说,使用预准备语句
无需验证变量