重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
sql语句要和数据库结构相对应!
目前创新互联公司已为上1000家的企业提供了网站建设、域名、雅安服务器托管、网站托管、服务器租用、企业网站设计、夏河网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
在给字段写入值的时候, 除字段属性是数字类型的(int、bigint等等)外, 其他字段类型写入值都要加引号(一般是单引号)
比如, 一个数据表A, 有两个字段, 一个字段b类型是int类型, 例外一个字段类型是c 是varchar类型, 那么, sql语句如下:
insert into A ( b, c ) values ( 5, '您好')
然后根据这个你比对一下你的数据库结构和sql语句!
当然, 文本类型的字段, 如果写入的值是数字, 也可以不要加引号, 除此之外, 必须加引号!
建议学习php的之前或者同时, 网上多找些Sql语句教程,学习一下!
试试我的代码
?PHP
/*
创建ADO连接
*/
$conn = @new COM("ADODB.Connection") or die ("ADO Connection faild.");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("Database1.accdb");
$conn-Open($connstr);
/*
创建记录集查询
*/
$rs = @new COM("ADODB.RecordSet");
$rs-Open("select * from dbo_dirs",$conn,1,3);
/*
循环读取数据
*/
while(!$rs-eof){
echo $rs-Fields["title"]-Value;
echo "br/";
$rs-Movenext(); //将记录集指针下移
}
$rs-close();
?
你好,你可以调试一下
在for循环外先定义个$wb = '' ;
然后你在mysql_query($wd,$sql);前echo $wd;
这样你就会知道哪里错了
进行调试之前,请先确认数据库连接,和表的选择没有错误
MYSQL的字段名转义使用返引号`,不是单引号,注意上面代码的下面部分:
WHERE '账户'='中文'; //查询中文字报错,数字字母都能正常查询
【账户】是字段名,应使用反引号:
`账户`
【中文】是常量,单双引号都可以,但是要注意你现在的语句是在单引号里面,因此应该转义或者使用双引号,这部分可以修改为:
WHERE 账户="中文"';
另外,如果只是查询中文内容才报错,可能你粘贴代码和原始代码有区别,原始代码没有把字段名放在单引号里面,否则是查不到内容的。查询中文内容报错,一般是中文的编码和网页文件的编码、以及数据库的编码不一致,你这来数据库是UTF8,那么PHP脚本文件、浏览器网页都必须使用UTF-8
你用的是sqlserver还是mysql? 我估计你用的是sql server,但这些是mysql代码,在mysql中的运行是没有任何错误的。