Php 致命错误:未捕获错误:updateMax函数中不支持的操作数类型
我在一个电子商务网站上工作,在试图改进它时遇到了一个问题。目前,我使用随机数生成购物车id。我希望能够生成购物车id的最大数字,然后增加1。然而,我已经厌倦了让这项工作,但我不断得到以下错误: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
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();
这是否回答了您的问题?在这种情况下这并没有什么帮助。。。