我正在尝试从不推荐使用的mysql_connect迁移到mysqli_connect,看起来一切正常,但我遇到了下面的错误:
警告: mysqli_stmt::bind_param():变量数量与/var/www/parser/parser.php第129行的预准备语句中的参数数量不匹配
严格标准:只有变量应该通过第130行的/var/www/parser/parser.php中的引用传递
警告: mysqli_stmt::bind_param():变量数量与第130行的/var/www/parser/parser.php中预准备语句中的参数数量不匹配
严格的标准:只有变量应该在/var/www/parser/parser.php的131行通过引用传递
警告: mysqli_stmt::bind_param():变量数量与/var/www/parser/parser.php中/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");
}发布于 2014-03-21 22:59:29
尝试一下Database Abstraction Layer for MySQL using PHP,你也可以在下面的链接中查看代码:
https://github.com/nbari/DALMP/blob/master/src/DALMP/Database.php#L372
这样您就可以更好地了解如何处理预准备语句。
https://stackoverflow.com/questions/22561710
复制相似问题