如何使用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';
}
}
?>