我无法使此PDO语句生效。我在第一行使用第一个bindParam不断收到意外变量警告。我想问题可能是你不能使用:Writing.ID是绑定参数名称?但这是我需要在sql中调用以获取该变量的变量名,那么如何编写param以使其无错误,并告诉代码该param名称是否为该sql列?
$results = "SELECT
wp_users.ID,
wp_users.display_name,
stories.SID,
writing.ID,
writing.text,
writing.approved,
writing.position
FROM writing
LEFT JOIN stories on writing.SID = stories.SID
LEFT JOIN wp_users ON writing.ID = wp_users.ID
WHERE (stories.SID = :SID) AND (writing.approved = :approved) ORDER BY position ASC";
$stmt = $dbh->prepare($results)
$stmt->bindParam(':wp_users.ID', $ID, PDO::PARAM_INT);
$stmt->bindParam(':wp_users.display_name', $display_name, PDO::PARAM_STR);
$stmt->bindParam(':SID', $the_SID, PDO::PARAM_INT);
$stmt->bindParam(':writing.ID', $ID, PDO::PARAM_INT);
$stmt->bindParam(':writing.text', $text, PDO::PARAM_STR);
$stmt->bindParam(':approved', $ID, PDO::PARAM_INT);
$stmt->bindParam(':writing.position', $position, PDO::PARAM_INT);
$stmt->execute();
答案 0 :(得分:0)
我认为这是一个语法错误,点符号 $ writing.ID 或 $ writing.text 在PHP中不存在。 听起来你想要写一些文字[' text']或$ writing->文字。
...
$stmt->bindParam(':writing.text', **$writing.text**, PDO::PARAM_STR);
上面标记的语法是无效的PHP语法!