1

テーブルから値を取得するために、この基本的な関数を作成しようとしています。

<?php 
    function getvalue($value, $from, $id){
        //Returns the value of a table

        require('includes/connect.php');
        $db = new PDO('mysql:host=localhost;dbname='.$database, $username, $password); 
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

        $sql = "SELECT :value AS value
            FROM :from
            WHERE id = :id
            LIMIT 1";

        $stmt = $db->prepare($sql); 
        $stmt->bindParam(':value', $value, PDO::PARAM_STR); 
        $stmt->bindParam(':from', $from, PDO::PARAM_STR); 
        $stmt->bindParam(':id', $id, PDO::PARAM_INT);
        $stmt->execute(); 
        $data = $stmt->fetch();
        $return = $data['value'];

        return $return;
    }//function
?>

次の致命的なエラーが発生します。

キャッチされない例外 'PDOException' とメッセージ 'SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1064 SQL 構文にエラーがあります。/functions/getvalue.php:26 の ''project' WHERE id = '1'' at line 2' で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。スタック トレース: #0 /functions/getvalue .php(26): PDOStatement->execute() #1 /
test.php(24): getvalue('tarief', 'project', '1') #2 {main} が /functions/getvalue.php でスローされる26行目

4

2 に答える 2