Php 检查GET输入方法中的SQL条目
由于某些原因,我无法使我的代码按我所希望的方式工作Php 检查GET输入方法中的SQL条目,php,mysql,Php,Mysql,由于某些原因,我无法使我的代码按我所希望的方式工作 $Check = $_POST['phrase']; try{ $db=new readPDO('testDB'); $sql=(' SELECT entry, ID FROM test WHERE entry = "$Check " '); $statement=$db->prepare($sql); $statement->execute(); 如
$Check = $_POST['phrase'];
try{ $db=new readPDO('testDB'); $sql=('
SELECT entry, ID
FROM test
WHERE entry = "$Check "
');
$statement=$db->prepare($sql);
$statement->execute();
如果我尝试这样做:
$Check = $_POST['phrase'];
try{ $db=new readPDO('testDB'); $sql=('
SELECT entry, ID
FROM test
WHERE ID= "$Check "
');
$statement=$db->prepare($sql);
$statement->execute();
GET是一个工作正常的数字,但它不适用于字符串。如下所述:
可以用四种不同的方式指定文字:
自PHP5.3.0以来
单引号
指定字符的最简单方法是用单引号将其括起来,即“字符”
注意:与和语法不同,特殊字符的转义序列出现在单引号中时不会展开
或者,现在可以使用单引号引用$Check,因为,如果禁用该选项:
$sql = "
SELECT entry, ID
FROM test
WHERE entry = '$Check '
";
请注意,引号中的尾随空格将由MySQL作为字符串的一部分进行解析,这可能不是您的意图
还要注意,如果$Check恰好包含某些字符,则此代码容易受到SQL注入攻击和bug的攻击。你应该阅读的博客文章,以更好地理解这一点;然后了解如何修复它。尝试反转您的报价或使用您说的“获取输入”,但您使用的是$Check=$\u POST['PHASE'”; [ deletia ]
$sql = "
SELECT entry, ID
FROM test
WHERE entry = \"$Check \"
";
$sql = "
SELECT entry, ID
FROM test
WHERE entry = '$Check '
";