2015-09-17 2 views
0

Вот мой код:PHP продолжает говорить недопустимое имя столбца

<?php $txtCommentor = $_POST['txtCommentor'] //from form?> 
<?php $txtComment = $_POST['txtComment'] //from form?> 
<?php $jobno = $_GET['jobno'] //from URL?> 

<?php 
//Query and connect 
$query = "INSERT INTO delivery_comments (commentor, comment, jobno) VALUES ($txtCommentor,$txtComment, $jobno) ";?> 
<?php $results = sqlsrv_query($conn, $query);?> 
<?php echo $query?> 
<?php 
if($results === false) { 
    die(print_r(sqlsrv_errors(), true)); 
} 
?> 

Когда я запускаю страницу я получаю это эти результаты:

INSERT INTO delivery_comments (commentor, comment, jobno) 
VALUES (frontdesk,bvhjfhj, 85450) 

Тогда я получаю ошибку:

Array ([0] => Array ([0] => 42S22 [SQLSTATE] => 42S22 [1] => 207 [code] => 207 [2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Invalid column name 'frontdesk'. [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Invalid column name 'frontdesk'.) [1] => Array ([0] => 42S22 [SQLSTATE] => 42S22 [1] => 207 [code] => 207 [2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Invalid column name 'bvhjfhj'. [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Invalid column name 'bvhjfhj'.)) 

Обратите внимание, что запрос эхо-указателя является первым. Это верно. Тогда остальная часть ошибки продолжает сообщать мне, что данные, которые я хочу вставить, являются недопустимым именем столбца. Это не имеет никакого смысла. Эта информация не должна быть именем столбца, а данными, вставленными в столбец.

+0

Я не думаю, что проблема не имеет ничего общего с одинарными кавычками, двойными кавычками и обратными кавычками , Я могу ошибаться. Он по-прежнему считает, что данные, которые я пытаюсь вставить, - это имена столбцов. – user1548989

+0

Прочитайте это: http://www.w3schools.com/php/php_mysql_insert.asp – Michael

+0

@ user1548989 Достаточно справедливо. Я снова открыл вопрос. –

ответ

0

Это то, что я в конечном итоге с помощью:

$query = "INSERT INTO delivery_comments (commentor, comment, jobno) VALUES ('$txtCommentor','$txtComment', '$jobno') "; 
1
<?php $txtCommentor = $_POST['txtCommentor'] //from form?> 
<?php $txtComment = $_POST['txtComment'] //from form?> 
<?php $jobno = $_GET['jobno'] //from URL?> 

<?php 
$params = array($txtCommentor, $txtComment, $jobno); 
//Query and connect 
$query = "INSERT INTO delivery_comments (commentor, comment, jobno) VALUES (?,?,?) ";?> 
<?php $results = sqlsrv_query($conn, $query,$params);?> 

Вышесказанное представляет собой дезинфицированную версию вашего запроса.

Вы должны иметь гораздо больше успеха с этой

+0

Я безумно путаюсь, почему я передаю данные в sqlsrv_query дважды. И что происходит в «?»? – user1548989

+0

Значок вопроса заменяется массивом. Вы съедали множество вариантов, а не каждый из них в томе – exussum

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