Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查GET输入方法中的SQL条目_Php_Mysql - Fatal编程技术网

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 '
";