2016-07-31 2 views
0

Привет там после нескольких часов попытки и поиск Интернет у меня есть проблема, чтобы получить мои данные в моей базе данных MySQLВставить массив Mysqli

Код:

// Create connection 
$conn = new mysqli($servername, $username, $password, $database); 
// Check connection 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 
include('simple_html_dom.php'); 
$html = file_get_html('http://www.cardplayer.com/poker-players'); 
$theData = array(); 
foreach($html->find('.table-lined tr') as $row) { 
$rowData = array(); 
foreach($row->find('td') as $cell) { 
$rowData[] = $cell->plaintext; 
} 
$length = count($theData); 
for ($i = 1; $i < $length; $i++) { 
$sql = "INSERT INTO playernames (playername, location, winnings, mostcash) 
    VALUES ('".$theData[$i][0]."','".$theData[$i][1]."','".$theData[$i][2]."','".$theData[$i][3]."')"; 
if ($conn->query($sql) === TRUE) { 
echo "New record created successfully"; 
} else { 
echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 

Я получаю следующее сообщение об ошибке:

Error: INSERT INTO playernames (playername, location, winnings,mostcash) VALUES (' Joseph Cheong ',' La Mirada, CA, USA','$11,216,031')

+2

Вы вставляете 3 значения в 4 столбца –

+1

и не вставляете $ или запятые в число, сохраняете его необработанным. –

+1

Вам лучше использовать [подготовленные заявления] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) – FirstOne

ответ

-2

Мне кажется, что вам не хватает winnings, или mostcash. Вы должны передать 4 значения в ваш запрос на вставку MySQL.

Не видя своего массива $theData, я не могу помочь вам, поскольку я не знаю, как ваши данные отформатированы.

Обращаем ваше внимание: Вы должны быть binding parameters to your queries. для предотвращения внедрения SQL.

+1

ОП использует mysql ** I ** –

+0

Да, но не обязательный (я только что обновил свой ответ). – FrankerZ

+0

FrankerZ Я уточнял полный код – Techboy992

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