Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.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和mysql从表中获取数据_Php_Mysql_Pdo - Fatal编程技术网

如何使用php和mysql从表中获取数据

如何使用php和mysql从表中获取数据,php,mysql,pdo,Php,Mysql,Pdo,我正在尝试从特定行或基于id\u code从people表获取电子邮件。。。也就是说,假设我输入一个id\u code=456,如果该id代码存在,则必须检索该特定id\u code的电子邮件,并生成一个令牌号码,并将令牌号码插入到people表中。生成并插入令牌后,必须发送带有令牌和id的URL链接 既然我是初学者,我该怎么做,有人能告诉我哪里出了问题吗 以下是我迄今为止所做的: <?php error_reporting(1); session_start();

我正在尝试从特定行或基于
id\u code
people
表获取电子邮件。。。也就是说,假设我输入一个
id\u code=456
,如果该id代码存在,则必须检索该特定
id\u code
的电子邮件,并生成一个令牌号码,并将令牌号码插入到people表中。生成并插入令牌后,必须发送带有令牌和id的URL链接

既然我是初学者,我该怎么做,有人能告诉我哪里出了问题吗

以下是我迄今为止所做的:

<?php
    error_reporting(1);
    session_start();

    include 'includes/db.php';
    include 'includes/token.php';

    //global
    $id_code = strtoupper(trim($_POST['id_code']));

    if ($_POST["Submit"] == "Submit") {
        $sql = "SELECT * FROM people WHERE id_code = :id_code";
        $stmt = $pdo->prepare($sql);
        $stmt->bindValue(':id_code', $id_code);
        $stmt->execute();
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
        if (!empty($_POST['id_code'])) {
            $sql = "SELECT email FROM people WHERE id_code = $id_code";

            $stmt = $pdo->prepare($sql);
            $stmt->bindValue(':id_code', $id_code);
            $stmt->execute();
            $result2 = $stmt->fetch(PDO::FETCH_ASSOC);
        } else {
            //echo "<br/>Validated: FALSE<br/>"; die();
            echo 'You are not Registered..Please Contact support';
        }
    }
?>

对第二次查询也使用正确的绑定(您已分配$id\u代码)


据我所知,
$id\u code
未定义。您可能要使用的值存储在
$\u POST['id\u code']
中,因此您应该执行类似
$id\u code=$\u POST['id\u code']的操作
在IF条件前面,否则,
$id\u code
未定义

更新:您已经使用了
$ccode
,将其用于绑定,它应该可以工作

$stmt->bindValue(':id_code', $id_code);
取代

$stmt->bindValue(':id_code', $ccode);
更新 请尝试以下代码并发布var_dump()的结果:



您的脚本有输出吗?

我输入了一个错误,代码应该是$idcode=strtoupper(trim($\u POST['id\u code']);我把它变成了全球性的。我怎么才能收到电子邮件呢doe@domian.com因为我要输入一个id代码,如果该id存在,我必须收到电子邮件,否则会发出警告。
$idcode
仍然不等于
$id\u code
。您应该启用errormessages以便更轻松地调试:
ini\u set('error\u reporting',E\u ALL)
ini\u集(“显示错误”,1)在脚本开始时应该启用它。再次键入,我的错误现在它已被更改,我只需要获取id_code等于我键入的值的电子邮件,脚本有什么问题?请尝试上面我更新的代码并发布结果这是我得到的输出---string(4)“id:”您的表中的id_code是什么?此人的id或消息的id?
$stmt->bindValue(':id_code', $ccode);
<?php
    error_reporting(1);
    session_start();

    include 'includes/db.php';
    include 'includes/token.php';

    //global
    $id_code = strtoupper(trim($_POST['id_code']));

    var_dump("ID: ".$id_code);

    if ($_POST["Submit"] == "Submit") {
        $sql = "SELECT * FROM people WHERE id_code = :id_code";
        $stmt = $pdo->prepare($sql);
        $stmt->bindValue(':id_code', $id_code);
        $stmt->execute();
        $result = $stmt->fetch(PDO::FETCH_ASSOC);

        var_dump("Result: ".$result);

        if (!empty($_POST['id_code'])) {
            $sql = "SELECT email FROM people WHERE id_code = $id_code";

            $stmt = $pdo->prepare($sql);
            $stmt->bindValue(':id_code', $id_code);
            $stmt->execute();
            $result2 = $stmt->fetch(PDO::FETCH_ASSOC);

            var_dump("Result2: ".$result2);

        } else {
            //echo "<br/>Validated: FALSE<br/>"; die();
            echo 'You are not Registered..Please Contact support';
        }
    }
?>