gpt4 book ai didi

PHP PDO SQL 将两个字符串连接在一起

转载 作者:行者123 更新时间:2023-11-30 21:39:03 25 4
gpt4 key购买 nike

我试图在准备语句(动态的表名和列)中将两个字符串连接在一起,但我得到了

Uncaught PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'exp.$getSkill' in 'field list'

我的代码是:

$query = $db->prepare('SELECT members.*, exp.*, lvl.*, exp.$getSkill AS exp_skill, lvl.$getSkill AS level_skill FROM members INNER JOIN exp ON members.id = exp.member_id INNER JOIN lvl ON members.id = lvl.member_id ORDER BY lvl.$getSkill DESC, exp.$getSkill DESC');   
$query->execute();
$row = $query->fetch();

有什么办法可以加入exp。和 $getSkill 正确吗?

最佳答案

变量不会在带有单引号的字符串中求值。您需要使用双引号,并用花括号将名称括起来 ({}):

$query = $db->prepare("SELECT members.*, exp.*, lvl.*, exp.${getSkill} AS exp_skill, lvl.$getSkill AS level_skill FROM members INNER JOIN exp ON members.id = exp.member_id INNER JOIN lvl ON members.id = lvl.member_id ORDER BY lvl.$getSkill DESC, exp.$getSkill DESC");

必填项:
在 SQL 查询中使用字符串连接可能会使您的代码暴露于 SQL 注入(inject)攻击。如果您打算使用这种技术,您应该非常小心。

关于PHP PDO SQL 将两个字符串连接在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52581581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com