0

我正在尝试从已弃用的 mysql_connect 迁移到 mysqli_connect,一切似乎都很好,但我遇到了下一个错误:

警告:mysqli_stmt::bind_param():变量数与第 129 行 /var/www/parser/parser.php 中准备好的语句中的参数数不匹配

严格标准:只有变量应该在 /var/www/parser/parser.php 第 130 行通过引用传递

警告:mysqli_stmt::bind_param():变量数与第 130 行 /var/www/parser/parser.php 中准备好的语句中的参数数不匹配

严格标准:只有变量应该在 /var/www/parser/parser.php 第 131 行通过引用传递

警告:mysqli_stmt::bind_param(): 变量数与第 131 行 /var/www/parser/parser.php 中准备好的语句中的参数数不匹配

严格的标准:只有变量应该在 /var/www/parser/parser.php 第 132 行通过引用传递

警告:mysqli_stmt::bind_param():变量数与第 132 行 /var/www/parser/parser.php 中准备好的语句中的参数数不匹配

ETC...

我究竟做错了什么?提前感谢大家。

这是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");
}
4

1 回答 1

0

尝试使用 PHP 的 MySQL 数据库抽象层,您也可以在以下位置查看代码:

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

这样您就可以更好地了解如何处理准备好的语句。

于 2014-03-21T14:59:28.793 回答