Как обновить 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
так что вы можете иметь лучшее представление о том, как бороться с подготовленными заявлениями.