본문 바로가기
MySql

MySQL 준비된 문이있는 PDO bindParam ()이 작동하지 않습니다.

by 베이스 공부 2020. 12. 18.
반응형

좋아, 이것이 문제입니다.

이것은 작동합니다 :

$STH = $DBH->prepare("SELECT * FROM juegos WHERE id = 1");
$STH->execute();

이것은하지 않습니다 :

$STH = $DBH->prepare("SELECT * FROM juegos WHERE id = :id");
$STH->bindParam(':id', '1', PDO::PARAM_STR);
$STH->execute();

세상에서 내가 뭘 잘못하고 있니? 예외도 던지지 않습니다.

여러분 감사합니다!

또한 이것은 전체 코드입니다

<?php
    try {
        $DBH = new PDO("everything is", "ok", "here");

        $DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

        $STH = $DBH->prepare("SELECT * FROM juegos WHERE id = :id");
        $STH->bindParam(':id', '1', PDO::PARAM_STR);
        $STH->execute();

        $STH->setFetchMode(PDO::FETCH_ASSOC);

        while($row = $STH->fetch()) {
            echo $row['nombre']."<br/>";
        }

        $DBH = null;

        echo "Todo salió bien";

    } catch (PDOException $e) {
        echo "Error";
    }

?>

 

해결 방법

 



다음은 참조로 전달할 수 있습니다.

변수, 즉 foo ($ a)

새로운 문장, 즉 foo (new foobar ())

함수에서 반환 된 참조


$STH->bindValue(':id', '1', PDO::PARAM_STR);

 

참조 페이지 https://stackoverflow.com/questions/19902078

 

 

반응형

댓글