En este momento estás viendo Cómo corregir el error El parámetro debe ser una matriz o un objeto que implemente Countable

 – Unity

Cómo corregir el error El parámetro debe ser una matriz o un objeto que implemente Countable – Unity

Cómo corregir el error El parámetro debe ser una matriz o un objeto que implemente Countable

– UnityAssets3Free

bienvenido , me llamo josel luis y en esta ocasion os traigo
esta unity pregunta

Sé que este error se ha respondido antes, pero estoy siguiendo una guía para crear mi primera base de datos sql con MAMP y recibí este error al abrir la base de datos. ¿Alguien podría ayudarme a resolver esto por favor? Estoy seguro de que es muy simple, pero seguí la guía exactamente y no puedo encontrar errores tipográficos o errores.

¿Es posible que el error tenga que ver con la forma en que configuré la base de datos, o podría ser algo que hice en Unity? Supongo que el 615 se refiere a una línea de código o un número de error. ¿Cuál sería la forma de evitar esto en el futuro o saber dónde está el error?

La guía que seguí me hizo crear el script en Sublime Text y guardarlo localmente y acceder a él con MAMP. Estoy acostumbrado a codificar en C++ y, más recientemente, en C#, por lo que estos son jeroglíficos para mí.

Warning in .librariessql.lib.php#615
 count(): Parameter must be an array or an object that implements Countable

Backtrace

.librariessql.lib.php#2128: PMA_isRememberSortingOrder(array)
.librariessql.lib.php#2079: PMA_executeQueryAndGetQueryResponse(
array,
boolean true,
string 'unityaccess',
string 'players',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
string '',
string './themes/pmahomme/img/',
NULL,
NULL,
NULL,
string 'SELECT * FROM `players`',
NULL,
NULL,
)
.sql.php#219: PMA_executeQueryAndSendQueryResponse(
array,
boolean true,
string 'unityaccess',
string 'players',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
string '',
string './themes/pmahomme/img/',
NULL,
NULL,
NULL,
string 'SELECT * FROM `players`',
NULL,
NULL,
)

Este es el código que condujo al mensaje de error.

<?php

$con = mysqli_connect('localhost', 'root', 'root', 'unityaccess');

//check that connection happened
if (mysqli_connect_errno())

    echo "1: Connection failed"; //error code #1 = connection failed
    exit();


$username = $_POST ["username"];
$password = $_POST["password"];

//check if name exists
$namecheckquery = "SELECT username FROM players WHERE username="" . $username . """;

$namecheck = mysqli_query($con, $namecheckquery) or die("2: Name check query failed"); //error code #2 - name check query failed

if (mysqli_num_rows($namecheck) > 0)

    echo "3: Name already exists"; //error code #3 - name exists cannot register
    echo();


//add user to the table
$salt = "$5$rounds=5000$" . "steamedhams" . $username . "$";
$hash = crypt($password, $salt);
$insertuserquery = "INSERT INTO players (username, hash, salt) VALUES ('" . $username . "', '" . $hash . "', '" . $salt . "');";
mysqli_query($con, $insertuserquery) or die("4: Insert player query failed"); //error code #4 - insert query failed

echo ("0");



?>

3 respuestas 3

  1. Ir a este archivo: .librariessql.lib.php

  2. Busque el error en la línea 615. Verá que count() no está bien cerrado, lo que provoca un boolean ser pasado en lugar de array/object.

  3. Reemplace toda la línea 615 con esta: || ((count($analyzed_sql_results['select_expr']) == 1).

Eso debería funcionar.

Actualización de agosto de 2020

Para ver Stuart Clarkpara una solución más nueva aplicable a PHP 7.2.24 usando Ubuntu 18.04LTS y probablemente una versión más nueva de phpMyAdmin. Vota su respuesta si esta solución te ayudó.

Esta respuesta se aplica a PHP 7.2.24 (usando Ubuntu 18.04LTS), similar a la respuesta de Zeke:

  1. Editar: /usr/share/phpmyadmin/libraries/sql.lib.php
  2. El corchete de cierre está en el lugar equivocado en la línea #613
    || (count($analyzed_sql_results['select_expr'] == 1)
change to
    || (count($analyzed_sql_results['select_expr']) == 1
  1. guarda el archivo

Todavía tenía problemas con todos los enfoques anteriores en Ubuntu 18.04 (finales del año 2021 no podía creerlo)

mi solución fue reemplazar la existente con el siguiente código

function PMA_isRememberSortingOrder($analyzed_sql_results)

básicamente lo arreglé

|| (count($analyzed_sql_results['select_expr'] == 1)

por

|| (count($analyzed_sql_results['select_expr']) == 1)

y

&& ($analyzed_sql_results['select_expr'][0] == '*')))

por

&& ($analyzed_sql_results['select_expr'][0] == '*'))

nota: si aun no se resuelve tu pregunta por favor dejar un comentario y pronto lo podremos de nuevo , muchas gracias

eso es todo,espero que te halla servido

Deja una respuesta