使用通过ODBC访问的条件表达式中的数据类型不匹配

时间:2011-04-22 02:48:10

标签: php ms-access odbc

$conn=odbc_connect('mobshopDB','','');
    if(!$conn){
        exit("Connection Failed: " . $conn);
    }
    $query="INSERT INTO users(uid,pass,fname,lname,pmm) VALUES('$username','$password','$fname','$lname',$pmm)";
    $rs=odbc_exec($conn,$query);

这个查询给了我这个错误

Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression., SQL state 22005 in SQLExecDirect in C:\Program Files\EasyPHP-5.3.6.0\www\mobshop\registered.php on line 39

..请提出解决方案

注意:pmm是一个数字字段,这就是为什么我没有把它放在引号中。

2 个答案:

答案 0 :(得分:1)

“数据类型不匹配”表示您尝试在其中一个变量中为第一组括号中列出的某个字段传入不正确的数据类型。

尝试使用echo将$ query写入屏幕,然后获取该结果并在MS Access数据库查询设计器中运行它(假设您拥有MS Access软件)。

答案 1 :(得分:0)

而不是这个

$query="INSERT INTO users(uid,pass,fname,lname,pmm) VALUES('$username','$password','$fname','$lname',$pmm)";

试试这个

$query="INSERT INTO users(uid,pass,fname,lname,pmm) VALUES('$username','$password','$fname','$lname','$pmm')";

你只需忘记$ pmm字段中的单引号。请记住,如果您使用的是ODBC,请注意数据类型。

如果该值为整数,则执行类似于此类型的转换 $id = (int) $id;

如果数据类型不是整数,则必须使用单引号