gpt4 book ai didi

PHP 和 MYSQL : Query returns null on column with values

转载 作者:可可西里 更新时间:2023-11-01 07:08:59 24 4
gpt4 key购买 nike

我有一个简单的 SQL 查询问题:

SELECT a.idElemento, b.nombre, b.descripcion
FROM productos_elementos a
INNER JOIN elementos_adicionales b
ON a.idElementoAdicional=b.id_elemento_adicional
INNER JOIN precio_elemento c
ON a.idElemento=c.idElemento
WHERE a.idProducto = 1 AND c.idPolitica = 1

当我在我的数据库上执行这个查询时,它返回:

IdElemento Nombre  Descripcion
1 p1 p1_desc
2 p2 p2_desc

但是我的 PHP 代码返回了这个值:

IdElemento Nombre  Descripcion
1 null null
2 null null

我不知道为什么会这样。有任何想法吗?这是代码:

//$query is a string with the querty: SELECT....
$result = $this->conn->query($query);
$aux = $result->fetchAll(PDO::FETCH_OBJ);
$results_to_send = json_encode($aux);

如果我此时打印 $variable $results_to_send,它被初始化为:

[{"idElemento":"1","nombre":null,"descripcion":null},{"idElemento":"2","nombre":null,"descripcion":null}]

我在这段代码中使用了这些值:

foreach ($results_to_send as $key => $value){
...
echo $value->idElemento //It prints 1 or 2
...
echo $value->nombre //It is null
...}

更新:最后我发现了问题。我还不知道如何解决它,但这是一个开始。

问题是存储在数据库中的字符串。两列都有带重音符号的字符。例如第一行是:(1,p1_náme, p1_désc)。它返回 (1, null, null)

如果我将它更改为 (1,p1_name, p1_desc),它会返回 (1,p1_name, p1_desc)。

更新 2:感谢 Andrew Mackrodt 的评论,问题解决了 ^^

最佳答案

我有同样的问题,这是由 PHP 的 MySQLI 和 MySQL 数据库之间的不匹配字符集引起的。并非所有字符集都具有相同的字符,这会导致 PHP 返回空值。

您可以通过定位您的数据库字符集(在 phpmyadmin 或类似 this 的查询中)来比较和设置您的字符集,并在 PHP 中使用 $mysqli::set_charset("short_name") (http://php.net/manual/en/mysqli.set-charset.php) 进行设置

如果您想查看可用的字符集,请查看此处的列表。 http://dev.mysql.com/doc/refman/5.6/en/charset-charsets.html

关于PHP 和 MYSQL : Query returns null on column with values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21752938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com