#php #ms-access #odbc
#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 FilesEasyPHP-5.3.6.0wwwmobshopregistered.php on line 39
.. пожалуйста, предложите решение
ПРИМЕЧАНИЕ: pmm — это числовое поле, поэтому я не заключил его в кавычки.
Комментарии:
1. Нужна структура таблицы, чтобы иметь возможность точно отвечать на эти вопросы.
Ответ №1:
«Несоответствие типа данных» указывает, что вы пытаетесь передать неправильный тип данных в одной из ваших переменных для одного из полей, перечисленных в вашем первом наборе круглых скобок.
Попробуйте записать $ query на экран с помощью echo, а затем возьмите этот результат и запустите его в вашем конструкторе запросов к базе данных MS Access (при условии, что у вас есть программное обеспечение MS Access).
Ответ №2:
Вместо этого
$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;
Если тип данных не является целым числом, вы должны заключить его в одинарные кавычки