我可以在 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() 函数中连接字符串以插入指定的表吗的主要内容,如果未能解决你的问题,请参考以下文章

使用 wpdb prepare 安全地收集带有“join”的“where”子句数组

参数“mds”在pyLDAvis.sklearn.prepare()函数中的含义是什么?

保护 wordpress - 如何使用 wodb->prepare() 函数

PHP 使用 Mysqli 的 prepare 语句有啥好处?

pdo 在字符串连接中准备

在非对象 PHP 帮助中调用成员函数 prepare()