kxing 发表于 2011-3-7 15:15:31

求助mysql无法插入数据

我在某公司申请了个mysql,查询时正常,插入数据就失败了。包括建表等。

我把代码以及数据库登录信息都贴出来,麻烦高手帮忙看看:
#include <Array.au3>
#include "mysql.au3"

Database("测试用户","123456","BFEBFBFF000006F65VM06J47",@YEAR&"-"&@MON&"-"&@WDAY,@YEAR+1&"-"&@MON&"-"&@WDAY)

Func DATABASE($name,$pass,$mcode,$startdate,$enddate)
__MySQL_ExtractEmbeddedDLL()
_MySQL_InitLibrary()
If @error Then Exit MsgBox(16,"错误","MySQL初始化失败!")
$MysqlConn=_MySQL_Init()

$connected=_MySQL_Real_Connect($MysqlConn,"222.73.26.222","sq_dbtest","123456","sq_dbtest")
If $connected=0 Then
$errno = _MySQL_errno($MysqlConn)
MsgBox(16,"错误",$errno&@LF&_MySQL_error($MysqlConn))
If $errno=$CR_UNKNOWN_HOST Then MsgBox(16,"错误","$CR_UNKNOWN_HOST"&@LF&$CR_UNKNOWN_HOST)
_MySQL_Close($MysqlConn)
_MySQL_EndLibrary()
Exit
EndIf

_MySQL_Set_Character_Set($MysqlConn,"GBK")

_MySQL_Real_Query($MysqlConn, "create database if not exists sq_dbtest default charset gbk")
_MySQL_Real_Query($MysqlConn, "use sq_dbtest;")

$sMySqlStatement="create table if not exists member (" & _
"name varchar(10)," & _
"pass varchar(20)," & _
"mcode varchar(50)," & _
"startdate date," & _
"enddate date);"

If _MySQL_Real_Query($MysqlConn, $sMySqlStatement,StringLen($sMySqlStatement)*2)<>$MYSQL_SUCCESS Then
msgbox(16,"错误","建表失败!")
Return
endif

$sMySqlStatement="insert into member VALUES ('"&$name&"','"&$pass&"','"&$mcode&"','"&$startdate&"','"&$enddate&"');"
If _MySQL_Real_Query($MysqlConn,$sMySqlStatement,StringLen($sMySqlStatement)*2)<>$MYSQL_SUCCESS Then
MsgBox(16,"错误" & _MySQL_errno($MysqlConn), _MySQL_error($MysqlConn))
Return
Else
MsgBox(64, "恭喜!", "写数据到数据库OK!")
EndIf
_MySQL_Close($MysqlConn)
_MySQL_EndLibrary()
EndFunc

kingfirekkk 发表于 2011-3-7 16:41:13

建议楼主参考一下下贴:
http://www.autoitx.com/thread-20360-1-1.html

另外,无法插入数据时,建议如下:
1. 直接在MYSQL台服务器中,使用USER/PASSWORD登陆进去,确认相应数据及数据类型正确,人工添加一条记录看有无问题;
2. 如果是局域网,则需要注意相应的USER有相应操作数据库的权限;
3. 使用别人能够正常写数据库的代码进行比对及DEBUG

一般根据以上几步骤,均可解决问题。

kxing 发表于 2011-3-7 18:04:30

但是上面代码在本地运行是正常的。
数据库表本身自己创建,应该不会有问题。
至于权限问题,按道理来说能查询就应该可以插入的啊。

auto 发表于 2011-3-7 19:22:26

但是上面代码在本地运行是正常的。
数据库表本身自己创建,应该不会有问题。
至于权限问题,按道理来说能 ...
kxing 发表于 2011-3-7 18:04 http://www.autoitx.com/images/common/back.gif

能查询不一定能插入数据

kxing 发表于 2011-3-7 19:42:15

郁闷,那我上面的代码有问题吗?
不知道人家那些软件使用的什么类型的数据库。

kxing 发表于 2011-3-8 09:24:32

我测试过了,用php网站程序可以写入数据的。
请高手们帮忙解决下哦,多谢啦!!!

devil3380 发表于 2011-3-8 09:54:37

测试OK
只是注释了一句,因为那句报错,其他的只是修改了本地的数据库信息,初步怀疑是权限问题

kxing 发表于 2011-3-8 11:03:21

那怎么用dedes的php网站程序能正常在上面读写呢
另外希望楼上把本地数据库的设置方法说下,多谢!

devil3380 发表于 2011-3-8 11:08:02

第一个问题,估计那种数据库远程连接只开了查询的权限把
第二个问题,你用root账号测试下

kxing 发表于 2011-3-8 11:17:16

没有呢,人家的数据库的确能插入、删除、查询的。不用怀疑。
我在本地安装了那种php套装,自带的mysql使用localhost能正常连接并正常读写。
但是不用localhost换做公网IP就连接不上了,端口也开了。不过这不重要。
重要的是能在服务器上读写数据库,毕竟以后不可能在自己电脑上运行mysql。

ceoguang 发表于 2011-3-8 13:40:36

并不是你开了端口就可以的.
请去了解下mysql的远程访问设置

kxing 发表于 2011-3-8 13:54:05

重要不在这里呢。。。

kxing 发表于 2011-3-8 21:58:51

哎!没有高手能帮忙解决吗。。。
这空间只有四天是用的,过了就不好测试了。

ceoguang 发表于 2011-3-8 22:51:07

晕,你认为什么是重要的?
帐户没远程访问权限不出错才假.

CCTRV 发表于 2011-3-9 03:46:05

为什么不用php去管理这个部分?
用autoit去访问就好了.
页: [1] 2
查看完整版本: 求助mysql无法插入数据