2012-06-19 1 views
-2

Я пытаюсь вставить некоторые переменные в MSSQL и его дает мне ошибку 500 сервераПопытка вставить переменную в MSSQL с помощью PHP

Ошибка HTTP 500 (Внутренняя ошибка сервера): Возникла непредвиденная обнаружена при сервер пытался выполнить запрос.

Однако он работает, когда я заменяю простые цифры или текстовые значения для этих переменных. Я запускаю Wamp-сервер и подключаюсь к экземпляру RDS MSSSQL amazon. Вот мой код:

$status = "closed"; 

$connection = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;", $user, $password); 

$query = "INSERT INTO DatabaseTableName (ColumnName) VALUES ('$status')"; 

$results = odbc_exec($connection, $query); 
if ($results){ 
    echo "Query Executed"; 
}else { 
    echo "Query failed " .odbc_error(); 
} 

Это работает, если удалить переменную $status и поставить в число или слово вместо этого. Любая помощь будет принята с благодарностью.

+2

Итак, что во время выполнения значение $ статус? Можете ли вы зарегистрировать значение $ query после того, как вы объявите его, чтобы узнать, что вы ожидаете? –

ответ

3
$query = "INSERT INTO DatabaseTableName (ColumnName) VALUES ('".$status."')"; 

Возможно, вы захотите также очистить свой ввод.

См mysqli real escape string

+0

Это действительно работаю, спасибо! Однако, только когда значение $ status является числом, когда я меняю его на слово, оно не работает. Однако я не вижу ошибки, что ее отбрасывание. Это дает мне ошибку 500 или если я прокомментирую строку, в которой говорится: «echo» Query failed «.odbc_error();» то я получаю пустой экран, но он не пишет в мою базу данных. Есть идеи? – CandyM

+0

Я сделал быстрый поиск google ошибки внутреннего сервера odbc, и это дало мне несколько хитов. Я не знаком с odbc, поэтому я не уверен, почему он дает вам эту ошибку. Вы можете убедиться, что вы (по крайней мере) избегаете ввода, чтобы убедиться, что вы выполняете действительный запрос. Например: если $ status equaled test, тогда ваш запрос будет читать VALUES ('test'). Посмотрите, как это может быть проблемой? –

+0

Можете ли вы дать мне пример того, как это будет выглядеть для более чем одного столбца, заполненного переменными? Слова все еще не работают, и эти столбцы являются столбцами varchar. – CandyM

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