Как обновить BBDD с MySQLi. Переменные должны передаваться по ссылке?

Я пытаюсь перейти с устаревшего mysql_connect на mysqli_connect, все выглядит нормально, но у меня есть следующие ошибки:

Предупреждение: mysqli_stmt::bind_param(): Количество переменных не соответствует количеству параметров в подготовленном выражении в /var/www/parser/parser.php в строке 129

Строгие стандарты: только переменные должны передаваться по ссылке в /var/www/parser/parser.php в строке 130

Предупреждение: mysqli_stmt::bind_param(): Количество переменных не соответствует количеству параметров в подготовленном выражении в /var/www/parser/parser.php в строке 130

Строгие стандарты: только переменные должны передаваться по ссылке в /var/www/parser/parser.php в строке 131

Предупреждение: mysqli_stmt::bind_param(): Количество переменных не соответствует количеству параметров в подготовленном выражении в /var/www/parser/parser.php в строке 131

Строгие стандарты: только переменные должны передаваться по ссылке в /var/www/parser/parser.php в строке 132

Предупреждение: mysqli_stmt::bind_param(): Количество переменных не соответствует количеству параметров в подготовленном выражении в /var/www/parser/parser.php в строке 132

так далее...

Что я делаю неправильно? Спасибо всем вам заранее.

Вот mysqli_connect.php:

<?php
$gbd =  mysqli_connect('my.host.com', 'my_user','my_pass','my_bbdd');
if (!$gbd) {
    die('Cannot connect: ' . mysqli_error());
}
echo 'Connection successful';

?> 

Вот mysqli_close_connection.php:

<?php
mysqli_close($gbd); 
?>

И моя функция для подключения и обновления BBDD:

function execQuery($values, $bar, $sevendates){

include ("mysqli_connect.php");


for ($contdays=0;$contdays < 7;$contdays++){


$sentence = $gbd->prepare("UPDATE prices$contdays SET DateFormatted=?, `00`=?, `01`=?,     `02`=?, `03`=?, `04`=?, `05`=?, `06`=?, `07`=?, `08`=?, `09`=?, `10`=?,
`11`=?, `12`=?, `13`=?, `14`=?, `15`=?, `16`=?, `17`=?, `18`=?, `19`=?, `20`=?, `21`=?,     `22`=?, `23`=?, Max=?, Med=?, Min=?, Date = now()");


// set the preparedstatement parameters
/* Updating 7 day graphic data */

$sentence->bind_param(1, $sevendates[$contdays]);
$sentence->bind_param(2, str_replace(',', '.',$bar[$contdays][0]));
$sentence->bind_param(3, str_replace(',', '.',$bar[$contdays][1]));
$sentence->bind_param(4, str_replace(',', '.',$bar[$contdays][2]));
$sentence->bind_param(5, str_replace(',', '.',$bar[$contdays][3]));
$sentence->bind_param(6, str_replace(',', '.',$bar[$contdays][4]));
$sentence->bind_param(7, str_replace(',', '.',$bar[$contdays][5]));
$sentence->bind_param(8, str_replace(',', '.',$bar[$contdays][6]));
$sentence->bind_param(9, str_replace(',', '.',$bar[$contdays][7]));
$sentence->bind_param(10, str_replace(',', '.',$bar[$contdays][8]));
$sentence->bind_param(11, str_replace(',', '.',$bar[$contdays][9]));
$sentence->bind_param(12, str_replace(',', '.',$bar[$contdays][10]));
$sentence->bind_param(13, str_replace(',', '.',$bar[$contdays][11]));
$sentence->bind_param(14, str_replace(',', '.',$bar[$contdays][12]));
$sentence->bind_param(15, str_replace(',', '.',$bar[$contdays][13]));
$sentence->bind_param(16, str_replace(',', '.',$bar[$contdays][14]));
$sentence->bind_param(17, str_replace(',', '.',$bar[$contdays][15]));
$sentence->bind_param(18, str_replace(',', '.',$bar[$contdays][16]));
$sentence->bind_param(19, str_replace(',', '.',$bar[$contdays][17]));
$sentence->bind_param(20, str_replace(',', '.',$bar[$contdays][18]));
$sentence->bind_param(21, str_replace(',', '.',$bar[$contdays][19]));
$sentence->bind_param(22, str_replace(',', '.',$bar[$contdays][20]));
$sentence->bind_param(23, str_replace(',', '.',$bar[$contdays][21]));
$sentence->bind_param(24, str_replace(',', '.',$bar[$contdays][22]));
$sentence->bind_param(25, str_replace(',', '.',$bar[$contdays][23]));

/* Updating 7 day Max, Med and Min values */

$sentence->bind_param(26, str_replace(',', '.',$values[$contdays][0]));
$sentence->bind_param(27, str_replace(',', '.',$values[$contdays][1]));
$sentence->bind_param(28, str_replace(',', '.',$values[$contdays][2]));


$sentence->execute();


}

getDateHour();
include("mysqli_close_connection.php");
}

1 ответ

Попробуйте слой абстракции базы данных для MySQL, используя PHP, также вы можете проверить код по адресу:

https://github.com/nbari/DALMP/blob/master/src/DALMP/Database.php

так что вы можете иметь лучшее представление о том, как бороться с подготовленными заявлениями.

Другие вопросы по тегам