我正在尝试在SQL查询中使用prepare语句,但是当select中有变量时我遇到了麻烦。
这不能正常工作:
$variable = "username";
$userId = "157";
$stmt = $conn->prepare("SELECT ?
FROM myTable
WHERE id=?");
$stmt->bind_param("ss", $variable, $userId);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
printf("ID: %s and %s is: %s\n", $userId, $variable, $result);
打印“ID:157,用户名为:用户名”时应打印“ID:157,用户名为:john90”
我猜测问题是我在查询的SELECT部分使用变量,但我无法删除此变量,因为有时我需要不同的内容,而不仅仅是用户名。 (有时变量可能是电子邮件或年龄等)。
任何建议表示赞赏。