[英]Segmentation fault (core dumped) on simple SQL code
我在一些簡單的C ++代碼上收到“分段錯誤(內核已轉儲)”錯誤。 當我使用變量結果時,錯誤將累積。 在這種情況下什么會導致此問題? 我知道有些超出范圍,但結果怎么可能呢? 數據庫中只有2個項目。
#include <iostream>
#include <boost/variant.hpp>
#include <mysql/mysql.h>
#include <mysql_connection.h>
using namespace std;
const char *server = "localhost";
const char *user = "XXXX";
const char *password = "XXXX";
const char *database = "XXXX";
int main()
{
MYSQL *conn;
MYSQL_RES *result;
MYSQL_ROW row;
int num_fields = 0;
conn = mysql_init(NULL);
mysql_real_connect(conn, server,user, password, database, 0, NULL, 0);
mysql_query(conn, "SELECT * FROM `users` WHERE `id` = '5'");
result = mysql_store_result(conn);
num_fields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result)))
{
cout << "Spam ";
}
mysql_free_result(result);
mysql_close(conn);
}
錯誤:
Segmentation fault (core dumped)
Process returned 139 (0x8B) execution time : 0.255 s
Press ENTER to continue.
解決方案是建立一個符號鏈接,以便mysql可以找到mysql.sock:
sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.