当前位置: 首页 > 面试题库 >

在c ++项目中使用mysql_query进行多个查询

鱼渝
2023-03-14
问题内容

因此,这不适用于mysql_query。

我严格使用c ++,并且我没有使用php。

我希望执行此双重查询,以便在由并发用户创建ID的交易系统中,我将始终具有唯一ID。

mysql_query(connection, \
"INSERT INTO User() VALUES ();  SELECT LAST_INSERT_ID(); ");

它可以完美地在MySql数据库中运行,但是我需要将其添加到Eclipse(我正在使用Ubuntu 12.04 LTS)。

我的应用程序很大,如果可能的话,我不想更改为mysqli,但是如果没有其他方法,那就可以了。

你能帮我吗?提前致谢。


问题答案:

根据MySQL C API文档:

MySQL
5.6还支持执行包含以分号(``;’‘)字符分隔的多个语句的字符串。通过使用mysql_real_connect()连接到服务器时或通过调用mysql_set_server_option()连接后指定的特殊选项,可以启用此功能。

和:

CLIENT_MULTI_STATEMENTS使mysql_query()和mysql_real_query()能够执行包含由分号分隔的多个语句的语句字符串。此选项还隐式启用CLIENT_MULTI_RESULTS,因此,将CLIENT_MULTI_STATEMENTS的flags参数设置为mysql_real_connect()等效于CLIENT_MULTI_STATEMENTS
| CLIENT_MULTI_RESULTS。也就是说,CLIENT_MULTI_STATEMENTS足以启用多语句执行和所有多结果处理。

因此,假设您使用mysql_real_connect设置了一些不同的mysql连接,则可以在单个mysql_query()调用中提供多个语句,并用分号分隔。您需要将以下标志作为最后一个参数传递:CLIENT_MULTI_STATEMENTS,其文档说:

告诉服务器客户端可以在单个字符串中发送多个语句(以``;’‘分隔)。如果未设置此标志,则禁用多语句执行。有关此标志的更多信息,请参见此表后面的注释。

请参阅C API对多语句执行的支持和22.8.7.53。mysql_real_connect()了解更多详细信息。



 类似资料:
  • 问题内容: 因此,我有一个需要使用mysql_query()加载的SQL转储文件。不幸的是,不可能用它执行多个查询。 ->不能假定安装了 mysql命令行客户端 (mysql –help)-直接加载SQL文件 ->无法假定已安装 mysqli 扩展 下面的explode()无法使用,因为某些转储内容的值包含分号。 在不修改转储文件的情况下加载SQL的最佳方法是什么? 问题答案: 您有更多的问题案例

  • 问题内容: 说我想做,如何在同一个mysql_query()中做它们? 编辑: 由于这个问题有很多看法,我想指出,自PHP 5.5起,其他功能现在已被弃用,不应使用。 问题答案: 我从来没有尝试过,但是我认为您可以使用mysqli :: multi_query 。拒绝多条语句的好处之一是,它可以立即排除一些更常见的SQL注入攻击,例如添加一条语句。因此,您可能需要注意多个语句。

  • PROJECT_B中的docker-compose.yml如下所示: 每个项目都可以单独运行,工作良好。但是,如果我们想要更改PROJECT_A和PROJECT_B之间的api,我们需要运行这两个项目,并将它们链接在一起以测试我们的代码。现在我们想写一个开发工具包项目,可以运行这两个项目,并链接他们,如果需要。最好的方法是什么?

  • 问题内容: 我正在使用iReport创建JasperReport,因此,我仅限于*一个SQL查询。 我有一个表“ statistics”,其中有一个“名称”(VARCHAR),“计数”(INTEGER)和“日期时间”(DATETIME)列。 当“名称”在最后一天(同样是最后一周和一个月)进行“测试”时,获取“计数”列的总和非常简单。 工作的SQL语句: 但是,由于我只有一个SQL语句可以使用,因此

  • 问题内容: 我有两个表,一个“公司”和一个“员工”: 我想在表中列出每个员工,并在其旁边列出公司。通过调用并在模板循环中通过并调用,这非常简单。 该解决方案的问题在于,将为循环中的每个项目创建一个新查询。因此,对于每个员工,公司都会有一个查询,看起来像这样: 相反,我希望最初在获取雇员的同一查询中加入此联接。像这样: Django QuerySet是否可能?如果没有,有没有办法可以解决此问题(没有

  • 我试图让测试(junit和robolectric)在Android项目中工作,但完全卡住了。我的主要问题是,我用gradle发现的所有测试都以某种方式拉入了java插件,然后我得到了这个错误: 我目前看到的唯一出路是分裂成测试和应用程序项目--但我想避免这种情况。任何例子/提示将非常感谢! 在官方文档中没有提到单元测试--只提到仪器测试--但我希望单元测试能快速得到结果。