首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用MySQLi更新BBDD。变量应该通过引用传递吗?

如何使用MySQLi更新BBDD。变量应该通过引用传递吗?
EN

Stack Overflow用户
提问于 2014-03-21 22:36:00
回答 1查看 81关注 0票数 0

我正在尝试从不推荐使用的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:

代码语言:javascript
复制
<?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:

代码语言:javascript
复制
<?php
mysqli_close($gbd); 
?>

以及我的连接和更新BBDD的函数:

代码语言:javascript
复制
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");
}
EN

回答 1

Stack Overflow用户

发布于 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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22561710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档