2014-10-20 4 views
0

Я получаю ошибку синтаксического анализа на линии разрыва. Я просто хочу взять ключевые слова, которые уже хранятся в моей базе данных (brad pitt, fight club, project mayhem) и превратить это в массив, взорванный запятой. Затем объедините этот массив с новым пользовательским вводом.Ошибка анализа (T_VARIABLE)

<?php 
$tags = $_POST['tagArray']; 
$title = $_POST['title']; 

$DBServer = "localhost"; 
$DBUser = "------"; 
$DBPass = "-------"; 
$DBName = "movies"; 

$conn = mysqli_connect($DBServer, $DBUser, $DBPass, $DBName); 


$query = "SELECT keywords FROM movieTitles WHERE movie='" .$title. "'"; 
$result = mysqli_query($conn, $query); 
$row = mysqli_fetch_array($result); 
$keywords = $row['keywords']; 

$current = explode("," $keywords[0]); 
$array = array_unique(array_merge($tags,$current)); 

echo $array; 

mysqli_close($conn); 

?> 
+0

Попробуйте 'var_dump ($ ключевые слова);' – Machavity

+3

Вы пропустите запятую после первого параметра в этой строке. $ current = explode (",", $ keywords [0]); –

+0

Помимо недостающей запятой вам нужно «взорвать («, »,« $ ключевые слова »),' как '$ keywords' - это строка, а не массив. И у вас проблема с SQL-инъекцией. – jeroen

ответ

1
$current = explode(",", $keywords[0]); 

Вы упускаете лишнюю запятую

0

Вы пропустили запятую между сепаратором и текстом

$current = explode("," , $keywords[0]); 
0
$current = explode("," $keywords[0]); 

Вы пропускаете запятую, чтобы отделить параметры функций

Должно быть:

$current = explode(",", $keywords[0]); 

Но в стороне от вашей ошибки, $row['keywords']; является строкой, поэтому использование [0]; будет стремиться в первый символ строки. Например:

$row['keywords'] = "Test"; 
echo $row['keywords'][0]; // Output T 

Так в целом это лучше сделать:

$current = explode(",", $keywords);