php4+access不支持 Recordset 对象的 Update 方法吗? 你的服务器的系统是什么?Linux下是不能用COM的获取打开所有的错误提示,看看是什么错error_reporting函数 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MS已经问过一回了,php4的时候的确会出现这样的问题.PHP没有这种情况.建议到php.net上去提bug吧.并且没有错误提示.呵呵 过完年了,开工了,赶快来看自己的问题。公司租用的服务器是win2003, php4的,只能支持access数据库。 所以必须要解决这个问题啊。不是没办法解决吧? 那就麻烦了啊! 改程序,用sql的方式来更新,虽然你不是很愿意.因为服务器在人家的,环境也是人家的,解决起来不太方便.我在本机上也安装了php4的环境,的确是不行的. 用sql语句,这有两个问题啊: 1.首先sql语句在字段很多时,用起来很麻烦。 2.需要避免$_POST来的信息含有特殊符号,而引起sql语句出错。但access不支持addslashes() “\” 转义符。 只能用htmlspecialchars()转换编码写入到数据库。读取数据时,再使用html_entity_decode()反转过来,这很麻烦,也降低效率。 所以最好还是能用Recordset对象来操作access数据库啊。要是没办法解决,以后那是真的很麻烦了啊! 1 access不支持转义符这肯定是你理解错误,access不支持\'这个写法,在access中'是需要用''来表示的.2 另外你所说的用转义,反转,降低效率. 这个也只是相对而言.3 sql更新起来很麻烦. 你可以先写好sql语句,然后用sprintf()函数来构造sql语句. 对我而言,我反而觉得,每一个字段要用一行,哪二十个字段要二十行,我觉得更麻烦,呵呵.总之,要么你自己解决,要么修改程序,要么换环境.ps,程序还是要写得标准一点好. 用sql语句吧。 既然用的access做数据库,说明你的系统不大,麻烦页麻烦不到哪里去。效率也是一样,既然都用access做数据库了,效率也高不到哪里去。转码工作带来的效率问题 和 access的效率相比可以忽略啦。 用sql语句吧。 既然用的access做数据库,说明你的系统不大,麻烦页麻烦不到哪里去。效率也是一样,既然都用access做数据库了,效率也高不到哪里去。转码工作带来的效率问题 和 access的效率相比可以忽略啦。 感谢jakey9826和yicel 的回答啊。jakey9826 我还有两个小疑问啊:1.先说那个“转义”特殊符号的问题, 如果是其它数据库,用addslashes()函数一下子就能解决sql语句$_POST有特殊符号的问题, 你说的“在access中'是需要用''来表示的” 这个有对应的函数来一下子解决吗?2. 你说的“你可以先写好sql语句,然后用sprintf()函数来构造sql语句” 我查了查资料,sprintf()函数好像是转换整数什么的。 怎么来“构造sql语句”呢? 能举个例子吗? 我是初学者,问题也很菜,希望不吝赐教啊。 谢谢! 1 addslashes能够将一些非法字符进行转义. 因为access比较特殊, 单引号必须转成两个单引号才成. 所以你在处理的时候,对单引号和其它特殊字符分别处理. 当然你也可以在addslashes()转义以后,再str_replace将 \' 转义成 ''2 sprintf的用法. $id = 1 $name = "xxx"; $sql = sprintf( "SELECT * FROM test WHERE id = %d AND name = '%s'", $id, $name ); 数字用%d, 字符串为%s PHP 5.4.8 and PHP 5.3.18 released PHP搞个echo XML都折磨疯哥了 听人说过数据分表,请问具体怎么做到 菜鸟级问题 刚刚接触PHP,菜鸟,请教环境配置的问题。。。 北大校园BBS引起轰动的一篇文章 在64位windows7上该装哪个php_imagick.dll? 我很纳闷,怎么这里无人讨论PHP5呢? php 有没方法可以得到所有从上一个网页带过来的所有的变量名和值注意前题是我们不知道上个网页的变量名 手动配置? 整合安装 ? 关于下载问题,给大家代码看一看,有空间6分钟就断线,有会一直都不会
建议到php.net上去提bug吧.
并且没有错误提示.呵呵
公司租用的服务器是win2003, php4的,只能支持access数据库。 所以必须要解决这个问题啊。不是没办法解决吧? 那就麻烦了啊!
因为服务器在人家的,环境也是人家的,解决起来不太方便.
我在本机上也安装了php4的环境,的确是不行的.
只能用htmlspecialchars()转换编码写入到数据库。读取数据时,再使用html_entity_decode()反转过来,这很麻烦,也降低效率。 所以最好还是能用Recordset对象来操作access数据库啊。要是没办法解决,以后那是真的很麻烦了啊!
2 另外你所说的用转义,反转,降低效率. 这个也只是相对而言.
3 sql更新起来很麻烦. 你可以先写好sql语句,然后用sprintf()函数来构造sql语句. 对我而言,我反而觉得,每一个字段要用一行,哪二十个字段要二十行,我觉得更麻烦,呵呵.总之,要么你自己解决,要么修改程序,要么换环境.
ps,程序还是要写得标准一点好.
如果是其它数据库,用addslashes()函数一下子就能解决sql语句$_POST有特殊符号的问题,
你说的“在access中'是需要用''来表示的” 这个有对应的函数来一下子解决吗?2. 你说的“你可以先写好sql语句,然后用sprintf()函数来构造sql语句”
我查了查资料,sprintf()函数好像是转换整数什么的。 怎么来“构造sql语句”呢? 能举个例子吗? 我是初学者,问题也很菜,希望不吝赐教啊。 谢谢!
因为access比较特殊, 单引号必须转成两个单引号才成.
所以你在处理的时候,对单引号和其它特殊字符分别处理.
当然你也可以在addslashes()转义以后,再str_replace将 \' 转义成 ''
2 sprintf的用法.
$id = 1
$name = "xxx";
$sql = sprintf( "SELECT * FROM test WHERE id = %d AND name = '%s'", $id, $name ); 数字用%d, 字符串为%s