2010-02-17 2 views
0

У меня есть 3 таблицы:не может обновить таблицу

  1. Vehicle_record
  2. Страховка
  3. Roadtax

В то время как я успешным в обновлении vehicle_record таблицы, две другие таблицы не могут быть обновлены ,

При запуске запроса, появляется следующее сообщение об ошибке:

1064 - У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом с «WHERE Regno =» TAC 2123 «» в строке 1

+10

Вам необходимо сообщить код, который вызывает ошибку – PaulJWilliams

ответ

0

Из сообщения об ошибке, я подозреваю, что у вас есть ключ с датой типа а строка. Вы должны избегать всех значений, чтобы положить их в запрос.

Предлагаю вам попробовать AdoDB library. Эта библиотека представляет собой мульти-базу данных и поможет вам легко вставлять и обновлять. Пример обновления с помощью AdoDB:

$regno = $adodb->qstr('TAC 2123'); 
$data = array(
'col1' => 'val1', 
'col2' => 'val2', 
'col3' => 'val3' 
); 
$result = $adodb->AutoExecute($tablename, $data, 'UPDATE', "regno=$regno"); 

убегая значение, прежде чем положить его в запрос, вы можете предотвратить инъекции SQL attact. Выполнение этого с помощью AdoDB Autoexecute, то побег значений выполняется автоматически AdoDB.

Для ключа с строкой типа вы должны сделать это вручную. Если ключ является целым числом, то использование intval предпочтительнее, чем $adodb->qstr().

0

Для того, чтобы помочь вам здесь, вам необходимо предоставить полный текст инструкции SQL, отправляемой на сервер. Вставьте это как часть вашего вопроса.

+0

thanks..i've решить проблему :) – user273551

Смежные вопросы