使用Access通过ODBC的标准表达式中的数据类型不匹配


Data type mismatch in criteria expression using Access via 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是一个数字字段,这就是为什么我没有把它放在引号里。

"Data Type Mismatch"表示您试图为第一组括号中列出的一个字段的一个变量传递不正确的数据类型。

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

代替

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

Try This

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

你只是忘记了在$pmm字段中的单引号。记住,如果使用ODBC,那么要小心数据类型。

如果值是整型,则对值进行如下类型转换
$id = (int) $id;

如果Datatype不是Integer,则必须加上单引号