2014-09-16 4 views
2

Я успешно создал таблицу в моей базе данных с помощью PHP. Теперь я пытаюсь заполнить его данными. Когда я var_dump данные, которые я пытаюсь добавить, он правильно отображает - это не определено.SQL & PHP - Добавление в таблицу, сбой

У меня нет ошибок, но в моих таблицах SQL нет записей. Что я сделал не так? Благодарю.

Макет базы данных здесь:

foreach($x->channel->item as $entry) { 

    if ($y < 8) { 

     $con=mysqli_connect("localhost","usernameremoved", 
     "passwordremoved","databasenameremoved"); 
     // Check connection 
     if (mysqli_connect_errno()) { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
     } 
     mysqli_query($con,"INSERT INTO Entries (Link, Title) 
     VALUES ($entry->link, $entry->title)"); 
     echo "Tables updated successfully."; 
     mysqli_close($con); 


     $y++; 

    } 
} 

UPDATE для Watcher:

Parse error: syntax error, unexpected '$entry' (T_VARIABLE) in C:\xampp\htdocs\ (...) \PHP\rss\index.php on line 60

if ($y < 8) { 

    mysqli_query($con,"INSERT INTO Entries (Link, Title) 
    VALUES ("$entry->link", "$entry->title")"); 
    echo "Tables updated successfully."; 



    $y++; 

} 
+2

Действительно ли вам действительно нужно подключаться и подключаться к каждой точке цикла mysql? что не имеет смысла – Ghost

+0

Создание строки результата внутри цикла для одной вставки будет гораздо более эффективным. – 2014-09-16 03:01:56

+0

Уверяет, что условие '$ y <8' фактически передается. Похоже, вы только увеличиваете '$ y', если условие уже прошло. – AlliterativeAlice

ответ

1

Просто взлетать, которые соединяют и закрыть за пределами этого цикла. И в соответствии с Dagon, вместо этого объедините их в несколько вставки. Пример:

$con = mysqli_connect("localhost","usernameremoved", "passwordremoved","databasenameremoved"); 
$stmt = 'INSERT INTO Entries (Link, Title) VALUES '; 
$values = array(); 
$y = 0; 
foreach ($x->channel->item as $entry) { 
    if($y < 8) { 
     $values[] = "('$entry->link', '$entry->title')"; 
    } 
    $y++; 
} 
$values = implode(', ', $values); 
$stmt .= $values; 
mysqli_query($con, $stmt); 
mysqli_close($con); 
+0

Спасибо, Ghost. :) – icor103

+0

@ icor103 sure man no prob – Ghost

1

Этот случай в значительной степени подготовлен для подготовленных операторов.

+0

Мне не хватает rep, чтобы проголосовать за вас, поэтому я могу только поблагодарить вас здесь. :) – icor103

+0

@ icor103 Добро пожаловать. –

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