2014-01-06 4 views
-3

Я встречая следующее сообщение об ошибке:Непредвиденная ошибка синтаксического анализа T_CONSTANT_ENCAPSED_STRING

Анализировать ошибка: синтаксическая ошибка, неожиданный T_CONSTANT_ENCAPSED_STRING в H: \ СТУДЕНТ \ S0213628 \ part2 \ friendslist.php в строке 7

С следующим SQL команда:

$sql = 
"SELECT ubuser.usr_firstname, ubuser.usr_lastname, ubuser.usr_DOB, 
ubuser2_1.usr_firstname & " " & ubuser2_1.usr_lastname AS UBFriend, 
ubFriendsLink.ub_lnkID1, ubFriendsLink.ub_lnkID2, ubuser.usr_ID, ubuser2_1.usr_ID 
FROM ubuser AS ubuser2_1 INNER JOIN (ubFriendsLink INNER JOIN ubuser 
ON ubFriendsLink.ub_lnkID1 = ubuser.usr_ID) ON ubuser2_1.usr_ID = 
ubFriendsLink.ub_lnkID2 WHERE (((ubFriendsLink.ub_lnkID1) = ".$_SESSION['usr_ID'] .")) 
OR (((ubFriendsLink.ub_lnkID2) = ".$_SESSION['usr_ID'] ."))"; 

команда предназначена для отображения обновлений как от пользователя с идентификатором сеанса и любых друзей, связанных с пользователем через друзей связать таблицы (либо с помощью ID1 или ID2).

Команда, похоже, работает в режиме доступа, но не работает, когда я включаю sql в свою php-страницу.

Любая помощь была бы принята с благодарностью, спасибо.

+2

'& "" &' - двойные кавычки внутри двойных кавычек нужно бежать ... и вы, возможно, лучше, с помощью функции SQL CONCAT() 'CONCAT (ubuser2_1.usr_firstname, '', ubuser2_1.usr_lastname) как UBFriend' - в зависимости от вашего вкуса базы данных –

+0

Или, другими словами, измените эту часть на '& \" \ "&' – Peon

ответ

0

В & " вы закрываете свою стартовую цитату. Вам необходимо избежать этого с помощью обратной косой черты:

$sql = 
"SELECT ubuser.usr_firstname, ubuser.usr_lastname, ubuser.usr_DOB, 
ubuser2_1.usr_firstname & \" \" & ubuser2_1.usr_lastname AS UBFriend, 
ubFriendsLink.ub_lnkID1, ubFriendsLink.ub_lnkID2, ubuser.usr_ID, ubuser2_1.usr_ID 
FROM ubuser AS ubuser2_1 INNER JOIN (ubFriendsLink INNER JOIN ubuser 
ON ubFriendsLink.ub_lnkID1 = ubuser.usr_ID) ON ubuser2_1.usr_ID = 
ubFriendsLink.ub_lnkID2 WHERE (((ubFriendsLink.ub_lnkID1) = ".$_SESSION['usr_ID'] .")) 
OR (((ubFriendsLink.ub_lnkID2) = ".$_SESSION['usr_ID'] ."))"; 
0

двойные кавычки внутри двойных кавычек вызывают проблему.

$sql = 
"SELECT ubuser.usr_firstname, ubuser.usr_lastname, ubuser.usr_DOB, 
ubuser2_1.usr_firstname & \" \" & ubuser2_1.usr_lastname AS UBFriend, 
ubFriendsLink.ub_lnkID1, ubFriendsLink.ub_lnkID2, ubuser.usr_ID, ubuser2_1.usr_ID 
FROM ubuser AS ubuser2_1 INNER JOIN (ubFriendsLink INNER JOIN ubuser 
ON ubFriendsLink.ub_lnkID1 = ubuser.usr_ID) ON ubuser2_1.usr_ID = 
ubFriendsLink.ub_lnkID2 WHERE (((ubFriendsLink.ub_lnkID1) = ".$_SESSION['usr_ID'] .")) 
OR (((ubFriendsLink.ub_lnkID2) = ".$_SESSION['usr_ID'] .")) 
Смежные вопросы