adodb的删除问题!
请大家帮我看一下,我下面的删除程序为什么不对?
$mdbpath="C:\Apache2\htdocs\jws\jws.mdb";
include('../adodb/adodb.inc.php');
$conn = ADONewConnection('access');
$dsn = "Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbpath;Uid=;Pwd=;";
$conn->Connect($dsn);
if ($_GET['annid']&&$_GET['act']=="Del")
{
$aql="delete FROM announce where id='.$_GET[annid].'";
$recordSet = $conn->Execute($sql);
if (!$recordSet)
{
print $conn->ErrorMsg();
}
else
{echo "删除成功!";}
}
执行后为什么出现错误“[Microsoft][ODBC Microsoft Access Driver]非法地使用 null 指针 ”?
}
问题点数:20、回复次数:5Top
1 楼lawyu(雨淋漓)回复于 2005-04-04 12:53:40 得分 10
好象是$_GET[annid]没有值,你打印出来试试
if ($_GET['annid']&&$_GET['act']=="Del")
=》
if (isset($_GET['annid'])&&$_GET['act']=="Del")试试
Top
2 楼xeina(亚亚)回复于 2005-04-04 13:10:15 得分 0
有值的,还是返回错误“[Microsoft][ODBC Microsoft Access Driver]非法地使用 null 指针 ”?
Top
3 楼xeina(亚亚)回复于 2005-04-04 13:12:25 得分 0
不好意思,是我自己的一个小错误
$sql写成了aql了
谢谢
Top
4 楼xuzuning(唠叨)回复于 2005-04-04 13:14:17 得分 10
打开adodb的调试开关Top
5 楼xuzuning(唠叨)回复于 2005-04-04 13:18:31 得分 0
突然发现你的sql串写错了
$aql="delete FROM announce where id='.$_GET[annid].'";
应写作
$aql="delete FROM announce where id='".$_GET[annid]."'";
或
$aql="delete FROM announce where id='$_GET[annid]'";
记得access对数据类型检查的比较严格,如id为数值型,应写作
$aql="delete FROM announce where id=".$_GET[annid];
或
$aql="delete FROM announce where id=$_GET[annid]";Top




