找回密码
 加入
搜索
查看: 12481|回复: 21

[网络通信] 求助mysql无法插入数据

 火.. [复制链接]
发表于 2011-3-7 15:15:31 | 显示全部楼层 |阅读模式
我在某公司申请了个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
发表于 2011-3-7 16:41:13 | 显示全部楼层
建议楼主参考一下下贴:
http://www.autoitx.com/thread-20360-1-1.html

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

一般根据以上几步骤,均可解决问题。
 楼主| 发表于 2011-3-7 18:04:30 | 显示全部楼层
但是上面代码在本地运行是正常的。
数据库表本身自己创建,应该不会有问题。
至于权限问题,按道理来说能查询就应该可以插入的啊。
发表于 2011-3-7 19:22:26 | 显示全部楼层
但是上面代码在本地运行是正常的。
数据库表本身自己创建,应该不会有问题。
至于权限问题,按道理来说能 ...
kxing 发表于 2011-3-7 18:04


能查询不一定能插入数据
 楼主| 发表于 2011-3-7 19:42:15 | 显示全部楼层
郁闷,那我上面的代码有问题吗?
不知道人家那些软件使用的什么类型的数据库。
 楼主| 发表于 2011-3-8 09:24:32 | 显示全部楼层
我测试过了,用php网站程序可以写入数据的。
请高手们帮忙解决下哦,多谢啦!!!
发表于 2011-3-8 09:54:37 | 显示全部楼层
测试OK
只是注释了一句,因为那句报错,其他的只是修改了本地的数据库信息,初步怀疑是权限问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2011-3-8 11:03:21 | 显示全部楼层
那怎么用dedes的php网站程序能正常在上面读写呢
另外希望楼上把本地数据库的设置方法说下,多谢!
发表于 2011-3-8 11:08:02 | 显示全部楼层
第一个问题,估计那种数据库远程连接只开了查询的权限把
第二个问题,你用root账号测试下
 楼主| 发表于 2011-3-8 11:17:16 | 显示全部楼层
没有呢,人家的数据库的确能插入、删除、查询的。不用怀疑。
我在本地安装了那种php套装,自带的mysql使用localhost能正常连接并正常读写。
但是不用localhost换做公网IP就连接不上了,端口也开了。不过这不重要。
重要的是能在服务器上读写数据库,毕竟以后不可能在自己电脑上运行mysql。
发表于 2011-3-8 13:40:36 | 显示全部楼层
并不是你开了端口就可以的.
请去了解下mysql的远程访问设置
 楼主| 发表于 2011-3-8 13:54:05 | 显示全部楼层
重要不在这里呢。。。
 楼主| 发表于 2011-3-8 21:58:51 | 显示全部楼层
哎!没有高手能帮忙解决吗。。。
这空间只有四天是用的,过了就不好测试了。
发表于 2011-3-8 22:51:07 | 显示全部楼层
晕,你认为什么是重要的?
帐户没远程访问权限不出错才假.
发表于 2011-3-9 03:46:05 | 显示全部楼层
为什么不用php去管理这个部分?
用autoit去访问就好了.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 14:48 , Processed in 0.081505 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表