我可以在 prepare() 函数中连接字符串以插入指定的表吗

Posted

技术标签:

【中文标题】我可以在 prepare() 函数中连接字符串以插入指定的表吗【英文标题】:Can I concatenate strings within the prepare() function to insert into specified tables 【发布时间】:2016-12-07 07:18:38 【问题描述】:

我创建了一个包含两个表的数据库,每个表用于用户类型(导师或学员)。用户被问到他是否想成为导师或被指导者,然后是一堆其他调查问题。这可能吗?

        $user_type = $_POST["user_type"];
        $stmt = $conn->prepare("INSERT INTO ' + $user_type + '(value_stream) VALUES (:vs)");            
        $stmt->bindParam(':vs', $value_stream);

【问题讨论】:

提供给prepare 的字符串value 的生成方式与prepare 的工作方式无关。但是,提供的字符串必须是有效的 SQL .. 不是。尝试检查生成的字符串(并阅读 SQL 错误消息)。 php 的连接运算符是. 而不是+ 确保执行。 如果你更正了concat,你当然可以这样做。通常被问到的是你能不能绑定一个表名或列名或IN 子句,所有这些你都不能 【参考方案1】:
$user_type = $_POST["user_type"];    
$stmt = $conn->prepare("INSERT INTO ". $user_type ." '(value_stream) VALUES (:vs)");     
$stmt->bindParam(':vs', $value_stream);

【讨论】:

以上是关于我可以在 prepare() 函数中连接字符串以插入指定的表吗的主要内容,如果未能解决你的问题,请参考以下文章