Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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 致命错误:未捕获错误:updateMax函数中不支持的操作数类型_Php_Html_Mysql_Function_Fatal Error - Fatal编程技术网

Php 致命错误:未捕获错误:updateMax函数中不支持的操作数类型

Php 致命错误:未捕获错误:updateMax函数中不支持的操作数类型,php,html,mysql,function,fatal-error,Php,Html,Mysql,Function,Fatal Error,我在一个电子商务网站上工作,在试图改进它时遇到了一个问题。目前,我使用随机数生成购物车id。我希望能够生成购物车id的最大数字,然后增加1。然而,我已经厌倦了让这项工作,但我不断得到以下错误: Fatal error: Uncaught Error: Unsupported operand types in C:\xampp\htdocs\finalProject\phpfunctions\functions.php:318 Stack trace: #0 C:\xampp\htdocs\f

我在一个电子商务网站上工作,在试图改进它时遇到了一个问题。目前,我使用随机数生成购物车id。我希望能够生成购物车id的最大数字,然后增加1。然而,我已经厌倦了让这项工作,但我不断得到以下错误:

Fatal error: Uncaught Error: Unsupported operand types in 
C:\xampp\htdocs\finalProject\phpfunctions\functions.php:318 Stack trace: #0 
C:\xampp\htdocs\finalProject\index.php(41): updateMax(Array) #1 {main} thrown in 
C:\xampp\htdocs\finalProject\phpfunctions\functions.php on line 318
这是给出错误的一行:

$newmax = $max + 1;
以下是代码的其余部分:

function getMaxCartID($db){
$query = "select MAX(cart_ID) from cart";
$statement = $db->prepare($query);
$statement->execute();
$max = $statement->fetchAll(PDO::FETCH_ASSOC);
$statement->closeCursor();
return $max;

}

 function updateMax($max){
 $newmax = $max + 1;
 return $newmax;
 }


 $max = getMaxCartID($db);
$cartID = updateMax($max);
$username = "Twili";
$itemid = $_POST['id'];
$quanity = $_POST['q2'];
$name= $_POST['name'];
$price= $_POST['price'];
addToCart($db, $cartID, $username, $itemid, $quanity, $name, $price);

谢谢您的帮助,我也知道getMaxCartID功能是有效的。

通常您会先检查一下什么是
$max
,显然它不是一个数字!(您可以使用
var\u dump
打印其内容。)

然而,我已经看到了这个问题:

看这条线

$max=$statement->fetchAll(PDO::FETCH_ASSOC);
…我们可以看到它是一个数组,而不是单个值!我假设此时
$max
[[“max(cart_ID)”=>123]
,而不是
123
,因为
fetchAll
获取所有行,而不仅仅是一行(因此您获取的是
[theRow]
而不是
theRow
),并且
PDO::FETCH\u ASSOC
表示您希望每一行都作为关联数组,所以现在的
[“MAX(cart\u ID)”=>123]
而不是
123

我想你想要这个:

$max=$statement->fetchColumn();

这是否回答了您的问题?在这种情况下这并没有什么帮助。。。