PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » подключение к MySQL


подключение к MySQL

Сообщений 1 страница 5 из 5

1

Здравствуйте!
Ниже приведён код для подключения к удалённой базе MySQL.
Но код не работает. Не работает - это значит не вставляет строчку в БД.
Компилятор не выдаёт ошибок. Единственное, при смене файла libmysql.dll на новый-другой версии, пишет что "клиент не соответствует" и т.д - похоже, что просит другую версию dll.

Подскажите, где тут ошибка -как отследить?
И где взять нужную мне версию  libmysql.dll? В интернете их полно. Качал и пробовал разные (и  libmysql - 5)- результата пока нет.
Устал менять dll

Веб-сервер, где находится БД
nginx/1.4.1
Версия клиента базы данных: libmysql - 5.0.77

Код:
;Подключение к БД
#libmysql = 1
host.s    = "90.50.93.20"
user.s    = "new11_base"
passwd.s  = "112233"
db.s      = "new11_base"
port.l    = 3306

dbHnd.l
SQL.s
row.s
i.l
j.l
affRows.l
fieldNum.l
rowsNum.l

Procedure.s GetError(db_ID,requester)
  
  Protected Errormsg.s, i.l, Error.l
  
  If CallFunction(#libmysql,"mysql_errno",db_ID) > 0
    *Error =CallFunction(#libmysql,"mysql_error",db_ID)
    i=-1
    Repeat
      i=i+1
      Errormsg=Errormsg+PeekS(*Error+i,1)
    Until PeekB(*Error+i)=0
    If requester
      Result= MessageRequester("MySQL error",Errormsg,#PB_MessageRequester_Ok)
    EndIf
  EndIf
  
  ProcedureReturn Errormsg
  
EndProcedure




If OpenLibrary(#libmysql,"libmysql.dll")
  Result=CallFunction(#libmysql,"mysql_init",dbHnd)
  If Result
    dbHnd = Result
 If CallFunction(#libmysql,"mysql_real_connect",dbHnd, @host, @user, @passwd, @db, port, @"", 0) = 0
   GetError(dbHnd,1)
    Else
      CallDebugger
      myrec=1
      my=1
      MessageRequester("Сообщение","Сообщение")
      SQL.s = "INSERT INTO records (record,time) VALUES ("+Str(myrec)+","+Str(myt)+")"
      Debug SQL
;       SQL = "SELECT * FROM records"
    EndIf
  EndIf
EndIf

0

2

Может это будет работать. http://www.cyberforum.ru/pure-basic/thr … ost2123008

0

3

Пётр написал(а):

Может это будет работать. http://www.cyberforum.ru/pure-basic/thr … ost2123008

Попробую, но библиотека "не подошла". Итого в моей копилке уже 6 разных (по размеру) библиотек libmysql.dll.

Отредактировано pbuser (13.11.2013 11:09:40)

0

4

Чем не подошла? Как это проявляется?
Код с базой из денвера нормально работает.

Может такой код сработает?

Код:
UsePostgreSQLDatabase()

; You should have a server running on localhost
;
If OpenDatabase(0, "hostaddr=90.50.93.20 dbname=new11_base port=3306", "new11_base", "112233")
  Debug "Connected to PostgreSQL"
Else
  Debug "Connection failed: "+DatabaseError()
EndIf

0

5

Пётр написал(а):

OpenDatabase(0, "hostaddr=90.50.93.20 dbname=new11_base port=3306", "new11_base", "112233")

Сделал.
Результат - в дебаггере
Connection failed: expected authentication request from server, but received 8

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » подключение к MySQL