Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL 8中使用MySQL驱动程序传递mysql语句中的C++变量_Mysql_C++11_Variables - Fatal编程技术网

在MySQL 8中使用MySQL驱动程序传递mysql语句中的C++变量

在MySQL 8中使用MySQL驱动程序传递mysql语句中的C++变量,mysql,c++11,variables,Mysql,C++11,Variables,我已经浏览了StackOverflow的大量答案和问题,但它们都是针对MySQL的旧版本的。我也在互联网上搜寻答案,尝试了许多不同的方法,但都没有结果。所以,在MySQL查询中如何使用C++变量? 例如: pstmt=con->prepareStatement从id=[C++Var]的账户中选择余额 其中[C++ +var ]为C++变量。我不确定在MySQL 8中使用MySQL 5中的旧方法是否是一个好主意。我认为最有效的方法是使用SET@ VARYNAME=数据方法,但是我无法在C++中实现

我已经浏览了StackOverflow的大量答案和问题,但它们都是针对MySQL的旧版本的。我也在互联网上搜寻答案,尝试了许多不同的方法,但都没有结果。所以,在MySQL查询中如何使用C++变量? 例如: pstmt=con->prepareStatement从id=[C++Var]的账户中选择余额


其中[C++ +var ]为C++变量。我不确定在MySQL 8中使用MySQL 5中的旧方法是否是一个好主意。我认为最有效的方法是使用SET@ VARYNAME=数据方法,但是我无法在C++中实现任何方法。目前我正在使用MySQL/C++Connector 8.0和驱动程序。谢谢大家!

我不明白为什么需要在这里使用MySQL@xxx变量

使用旧的MySQL C++ API,它似乎是在java JDBC API准备状态调用之后建模的,看起来应该是:

pstmt = con->prepareStatement("SELECT balance FROM accounts WHERE id = ?");
以后你应该用

pstmt->setInt(1, userId); //where userId is a C++ int
ResultSet res* = pstmt->executeQuery()

使用新的C++ API,调用将类似于以下内容:

Table accounts = db.getTable("accounts");
auto query = accounts.select("balance").where("id = :account_id");

RowResult res = query.bind("account_id", account_id).execute(); // where account_id is the name of an int variable.

这比我在其他地方能找到的信息多得多。当我今晚回家的时候,我会努力让它起作用。谢谢你@nimrodm的回答,它起作用了!我希望有更多的C++文档,甚至其他语言,可能没有这样的语言。您最终使用了什么API?旧的JDBC还是新的X-Dev?我使用旧的JDBCAPI,因为它是我目前正在使用的。再次感谢!