Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php PDO无效的参数数bount_Php_Mysql_Pdo - Fatal编程技术网

Php PDO无效的参数数bount

Php PDO无效的参数数bount,php,mysql,pdo,Php,Mysql,Pdo,我已经开始在电脑屏幕上工作了好几个小时(Adobe Dreamweaver的背景是白色的,这对我没有帮助) 问题 我无法找到这个错误来挽救我的生命,如果有人能扫描一下,告诉我哪里出了问题,我将不胜感激 需要建议 我是PDO新手,刚做了一个转换。我正在慢慢掌握它的窍门,但我正在努力调试,在php中使用带有PDO的mysql查询时。在旧的mysql_*方法上很容易找到查询错误,但作为PDO新手,我在调试时遇到了困难。除了mysql\u error(),PDO的替代方案是什么?感谢您的帮助和建议 下面

我已经开始在电脑屏幕上工作了好几个小时(Adobe Dreamweaver的背景是白色的,这对我没有帮助)

问题

我无法找到这个错误来挽救我的生命,如果有人能扫描一下,告诉我哪里出了问题,我将不胜感激

需要建议

我是PDO新手,刚做了一个转换。我正在慢慢掌握它的窍门,但我正在努力调试,在php中使用带有
PDO
的mysql查询时。在旧的
mysql_*
方法上很容易找到查询错误,但作为PDO新手,我在调试时遇到了困难。除了mysql\u error(),PDO的替代方案是什么?感谢您的帮助和建议

下面的Codde(请记住我是新手,所以代码可能不是最漂亮的)

错误


:无效参数编号:未定义参数

绑定参数时存在一些不一致。 应该是这样的:

$sql = 'UPDATE car_reservations SET 
renter_name = :renter_name, 
renter_lastname = :renter_lastname, 
email = :email, 
phone = :phone, 
pickup_date = :pickup_date, 
return_date = :return_date, 
number_days = :number_days, 
insurance = :insurance, 
car_group = :car_group, 
return_time = :return_time, 
pickup_time = :pickup_time 
WHERE res_id = :resId';

$statement = $db->prepare($sql);
$statement->bindValue(':renter_name', $name);
$statement->bindValue(':renter_lastname', $surname);
$statement->bindValue(':email', $email);
$statement->bindValue(':phone', $phone);
$statement->bindValue(':pickup_date', $pickupDate);
$statement->bindValue(':return_date', $returnDate);
$statement->bindValue(':number_days', $rentalPeriode);
$statement->bindValue(':insurance', $coverName);
$statement->bindValue(':car_group', $carType);
$statement->bindValue(':return_time', $returnTime );
$statement->bindValue(':pickup_time', $pickupTime );
$statement->bindValue(':resId', $resId, PDO::PARAM_INT);

另外,
$resId
也应该受到保护,请参见我的代码片段中的
PDO::PARAM_INT
常量的用法,因为您使用的是整数,不应该引用它。

绑定参数时存在一些不一致性。 应该是这样的:

$sql = 'UPDATE car_reservations SET 
renter_name = :renter_name, 
renter_lastname = :renter_lastname, 
email = :email, 
phone = :phone, 
pickup_date = :pickup_date, 
return_date = :return_date, 
number_days = :number_days, 
insurance = :insurance, 
car_group = :car_group, 
return_time = :return_time, 
pickup_time = :pickup_time 
WHERE res_id = :resId';

$statement = $db->prepare($sql);
$statement->bindValue(':renter_name', $name);
$statement->bindValue(':renter_lastname', $surname);
$statement->bindValue(':email', $email);
$statement->bindValue(':phone', $phone);
$statement->bindValue(':pickup_date', $pickupDate);
$statement->bindValue(':return_date', $returnDate);
$statement->bindValue(':number_days', $rentalPeriode);
$statement->bindValue(':insurance', $coverName);
$statement->bindValue(':car_group', $carType);
$statement->bindValue(':return_time', $returnTime );
$statement->bindValue(':pickup_time', $pickupTime );
$statement->bindValue(':resId', $resId, PDO::PARAM_INT);

另外,
$resId
也应该受到保护,请参见我的代码片段中的
PDO::PARAM_INT
常量的用法,因为您使用的是整数,不应该引用它。

我看到了一种“罕见”的情况,即省略冒号
('carType',$carType)
会导致这种情况。因此,请尝试添加它
(':carType',$carType)
。编辑:在看到@gabe3886的评论后,我在这里是错的,但我的评论确实“有些真实”。该查询有
:car\u group
,但您绑定了
carType
。您在sql查询中没有定义名为
carType
的占位符,但您仍然试图将值绑定到它。我看到了“罕见的”如果省略冒号
('carType',$carType)
会导致这种情况。因此,请尝试添加它
(':carType',$carType)
。编辑:在看到@gabe3886的评论后,我在这里错了,但我的评论确实“有些真实”。该查询有
:car\u group
,但您绑定了
carType
。您在sql查询中没有定义名为
carType
的占位符,但是您仍然尝试将一个值绑定到它。为什么要将拾取时间设置为
$statement->bindValue(“:picku_-time”,$resId,PDO::PARAM_-INT)?没有必要这样设置。编辑:现在您的编辑提到了参数化resID,但没有设置它hanks@gabe3886,更新的回答为什么您要将拾取时间设置为
$statement->bindValue(“:拾取时间,$resID,PDO::PARAM_INT”)?没有必要这样设置。编辑:现在您的编辑提到参数化resID,但没有设置itThanks@gabe3886,更新答案