givanz / Vvveb

Powerful and easy to use cms to build websites, blogs or ecommerce stores.
https://www.vvveb.com
GNU Affero General Public License v3.0
384 stars 82 forks source link

FUNCTION bootstrap_builder.JSON_ARRAYAGG does not exist #216

Open ASFAR2023 opened 1 week ago

ASFAR2023 commented 1 week ago

i get this first login

FUNCTION bootstrap_builder.JSON_ARRAYAGG does not exist
SELECT  pd.*,product.*, product.product_id as array_key

                ,(SELECT JSON_ARRAYAGG( JSON_OBJECT('id', pi.product_image_id, 'image', pi.image) ) 
                FROM product_image as pi WHERE pi.product_id = product.product_id GROUP BY pi.product_id) as images

        FROM product

            LEFT JOIN product_to_site p2s ON (product.product_id = p2s.product_id) 
            LEFT JOIN product_content pd ON (
                product.product_id = pd.product_id

                    AND pd.language_id = 1

            )  

            WHERE p2s.site_id = 1

            ORDER BY product.product_id DESC
        LIMIT 0, 4
 - SELECT  pd.*,product.*, product.product_id as array_key

                ,(SELECT JSON_ARRAYAGG( JSON_OBJECT('id', pi.product_image_id, 'image', pi.image) ) 
                FROM product_image as pi WHERE pi.product_id = product.product_id GROUP BY pi.product_id) as images

        FROM product

            LEFT JOIN product_to_site p2s ON (product.product_id = p2s.product_id) 
            LEFT JOIN product_content pd ON (
                product.product_id = pd.product_id

                    AND pd.language_id = :language_id

            )  

            WHERE p2s.site_id = :site_id

            ORDER BY product.product_id DESC
        LIMIT :start, :limit

/home/bs.infinyteam.com/public_html/system/db/mysqli.php on line 307
Code
throw new \Exception($message, $e->getCode()); // <==

        list($parameters, $types) = $this->paramsToQmark($sql, $params, $paramTypes);

        try {

            $stmt = self::$link->prepare($sql);

        } catch (\mysqli_sql_exception $e) {

            $message = $e->getMessage() . "\n" . $this->debugSql($origSql, $params, $paramTypes) . "\n - " . $origSql;

            throw new \Exception($message, $e->getCode());   // <==

        }

        if ($stmt && ! empty($types)) {

            array_unshift($parameters, $types);

            //hack for php 7.x bind_param "expected to be a reference, value given" stupid warning

Trace

#0 /home/bs.infinyteam.com/public_html/storage/model/admin/productsql.mysqli.php(6008): Vvveb\System\Db\Mysqli->execute()
#1 /home/bs.infinyteam.com/public_html/admin/component/products.php(54): Vvveb\Sql\ProductSQL->getAll()
#2 /home/bs.infinyteam.com/public_html/system/component/component.php(229): Vvveb\Component\Products->results()
#3 /home/bs.infinyteam.com/public_html/system/component/component.php(89): Vvveb\System\Component\Component->loadComponents()
#4 /home/bs.infinyteam.com/public_html/system/component/component.php(66): Vvveb\System\Component\Component->__construct()
#5 /home/bs.infinyteam.com/public_html/system/core/view.php(382): Vvveb\System\Component\Component::getInstance()
#6 /home/bs.infinyteam.com/public_html/system/core/response.php(120): Vvveb\System\Core\View->render()
#7 /home/bs.infinyteam.com/public_html/system/core/frontcontroller.php(292): Vvveb\System\Core\Response->output()
#8 /home/bs.infinyteam.com/public_html/system/core/frontcontroller.php(339): Vvveb\System\Core\FrontController::call()
#9 /home/bs.infinyteam.com/public_html/system/core/frontcontroller.php(403): Vvveb\System\Core\FrontController::redirect()
#10 /home/bs.infinyteam.com/public_html/system/core/startup.php(381): Vvveb\System\Core\FrontController::dispatch()
#11 /home/bs.infinyteam.com/public_html/index.php(149): Vvveb\System\Core\start()
#12 /home/bs.infinyteam.com/public_html/admin/index.php(41): include('...')
#13 /home/bs.infinyteam.com/public_html/public/admin/index.php(26): include('...')
#14 {main}
givanz commented 1 week ago

It looks that you have an old version of Mysql/MariaDB because JSON_ARRAYAGG is missing.

JSON_ARRAYAGG was added in MySQL version 5.7.22 and in MariaDB version 10.5.0

You need to upgrade your database or reinstall using SQLite instead of MySql.

You can delete config/db.php to reset db config and install page will show to choose SQLite.