使用 fetch 定义前一个变量的变量
defining variable with previous variable with fetch
我想使用 $querycheckuserid(之前定义的)数据库信息在我的数据库中定义 $querycheckauth,但是我获取 pdo 异常失败并且它似乎不起作用。
$querycheckuserid = $a->con->prepare("select userid from users where auth = ? ");
$querycheckuserid->execute([$cauth]);
$querycheckauth = $a->con->prepare("select id from users where userid = ?");
$useridfetch = $querycheckauth->fetch();
$querycheckauth->execute([$useridfetch]);
我也试过了
$querycheckuserid = $a->con->prepare("select userid from users where auth = ? ");
$querycheckuserid->execute([$cauth]);
$querycheckauth = $a->con->prepare("select id from users where userid = ?");
$querycheckauth->execute([$querycheckauth]);
但是这给了我以下错误:
未捕获错误:class PDOStatement 的对象无法转换为 D:\xampp\htdocs\cinematic\loginwithcinematic.php:42 堆栈跟踪中的字符串:#0 D: \xampp\htdocs\cinematic\loginwithcinematic.php(42): PDOStatement->execute(Array) #1 {main} thrown in D:\xampp\htdocs\cinematic\loginwithcinematic.php on line 42
你做的差不多对了,看看下面的:
$querycheckauth = $a->con->prepare("select id from users where userid = ?");
// you need to call execute before fetch
$querycheckauth->execute([123]); // here you have to put the userid in question
// ->fetch() will return array, while you have only single value you can use:
$useridfetch = $querycheckauth->fetchColumn();
现在 $useridfetch
包含您要求的 id
,echo $useridfetch;
。
123
而不是 ?
,例如:select id from users where userid = 123
,您可以在那里设置变量,但必须先将其设置为特定值。
此外,您不应该尝试执行 echo $querycheckauth;
这是您的错误来源,因为值类型是 PDOStatement,它不能转换为字符串。你可以做 var_dump($querycheckauth);
不会产生错误。
我想使用 $querycheckuserid(之前定义的)数据库信息在我的数据库中定义 $querycheckauth,但是我获取 pdo 异常失败并且它似乎不起作用。
$querycheckuserid = $a->con->prepare("select userid from users where auth = ? ");
$querycheckuserid->execute([$cauth]);
$querycheckauth = $a->con->prepare("select id from users where userid = ?");
$useridfetch = $querycheckauth->fetch();
$querycheckauth->execute([$useridfetch]);
我也试过了
$querycheckuserid = $a->con->prepare("select userid from users where auth = ? ");
$querycheckuserid->execute([$cauth]);
$querycheckauth = $a->con->prepare("select id from users where userid = ?");
$querycheckauth->execute([$querycheckauth]);
但是这给了我以下错误:
未捕获错误:class PDOStatement 的对象无法转换为 D:\xampp\htdocs\cinematic\loginwithcinematic.php:42 堆栈跟踪中的字符串:#0 D: \xampp\htdocs\cinematic\loginwithcinematic.php(42): PDOStatement->execute(Array) #1 {main} thrown in D:\xampp\htdocs\cinematic\loginwithcinematic.php on line 42
你做的差不多对了,看看下面的:
$querycheckauth = $a->con->prepare("select id from users where userid = ?");
// you need to call execute before fetch
$querycheckauth->execute([123]); // here you have to put the userid in question
// ->fetch() will return array, while you have only single value you can use:
$useridfetch = $querycheckauth->fetchColumn();
现在 $useridfetch
包含您要求的 id
,echo $useridfetch;
。
123
而不是 ?
,例如:select id from users where userid = 123
,您可以在那里设置变量,但必须先将其设置为特定值。
此外,您不应该尝试执行 echo $querycheckauth;
这是您的错误来源,因为值类型是 PDOStatement,它不能转换为字符串。你可以做 var_dump($querycheckauth);
不会产生错误。