0
我使用MariaDB C-connector API在C中創建函數,以允許用戶輸入新的用戶名和密碼並將它們存儲在MariaDB/MySQL數據庫中。我使用strcpy_s()和strcat_s()將多個字符串連接在一個緩衝區內,以便生成MariaDB/MySQL查詢以將信息放入數據庫。這會導致「字段列表中的未知列」錯誤。我在前面提出了一個類似的問題,當我使用「foo」和「bar」作爲預設字符串來實現這個功能時,我收到的迴應(工作)是將「foo」和「bar」改爲「'foo '「和」'bar'「。這工作。有沒有辦法在運行時以「'foo'」形式與「foo」形式從用戶那裏獲取字符串?以下是該功能的相關代碼。關於MariaDB/MySQL C連接器API的C中的字符串I/O?
void NEW_PLAYER(MYSQL *con)
{
char NAME[16];
char PASSWORD[16];
char ch = NULL;
unsigned int i = 0;
printf("New Username: ");
while (ch != '\n') // terminates when the user presses enter
{
ch = getchar();
NAME[i] = ch;
i++;
}
NAME[i] = '\0';
i = 0;
ch = NULL;
printf("New Password: ");
while (ch != '\n') // terminates if user hits enter
{
ch = getchar();
PASSWORD[i] = ch;
i++;
}
PASSWORD[i] = '\0';
printf("%s", NAME);
printf("%s", PASSWORD);
char TEMP[256];
char str1[] = "INSERT INTO PLAYERS VALUES(";
strcpy_s(TEMP, str1); strcat_s(TEMP, NAME);
strcat_s(TEMP, ", ");
strcat_s(TEMP, PASSWORD);
strcat_s(TEMP, " ,0, 0, 0, 1)");
if (mysql_query(con, TEMP)) {
fprintf(stderr, "%s\n", mysql_error(con));
exit(-1);
}
}
你能告訴我你的代碼是什麼意思嗎? – RakovS
你知道Perl,PHP,VB,Java,Python嗎? –
吊。。如果團隊知道這一點,我可以理解使用特定的語言。如果這是因爲「C允許更好的優化」,那麼這是錯誤的。當然,您可以更好地微調代碼。但真正的性能收益是通過查看大圖並優化算法。當很多時間都花在諸如字符串處理等瑣事上時,很難做到這一點。 50年前,一種類似的口頭禪適用於「彙編語言」。 –