gpt4 book ai didi

c++ - 有没有办法在 mysql_fetch_row() 循环中发出下一个(如 INSERT)mysql 语句?

转载 作者:行者123 更新时间:2023-11-28 06:15:04 26 4
gpt4 key购买 nike

我有一个问题,因为我想根据从表_A 检索到的行来填充表_B。

if (mysql_query(conn,"Select X,Y,Z from table_A;")) {
die_mysql_err();
}
else
{
res = mysql_use_result(conn);
while ((row = mysql_fetch_row(res)) != NULL) {

>> HERE I would like to INSERT some data into the table_B.
}
mysql_free_result(res);
}

错误信息是:

 Commands out of sync; you can't run this command now

我理解消息但不知道什么是最好的解决方案..

  • 我应该创建另一个连接吗?那么时间/速度和资源呢?
  • 我可以用 mysql_store_result() 函数解决它吗(如何??)?

两个表都在同一个数据库中。

最佳答案

你问:

Should I create another connection?

是的,你可以做到这一点。

What about time/speed and resources then ?

不错,只要您不关闭并重新打开每一行的第二个连接即可。

Can I solve it (how??) with mysql_store_result() function ?

您可以遍历您的第一个结果集并将所有结果存储在内存中的一个数组中,然后释放它,然后遍历该数组进行插入。

您是否考虑过您可以改为执行此类操作?

 INSERT INTO Table_B (x, y, z, a)
SELECT x,y,z, x+y+z AS a
FROM table_a

如果您需要对表 a 的行进行的计算可以用 SQL 表示,您可以在单个查询中完成。

关于c++ - 有没有办法在 mysql_fetch_row() 循环中发出下一个(如 INSERT)mysql 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30489175/

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