PHP - Caracteres extraños en consulta ODBC.

 
Vista:
sin imagen de perfil
Val: 18
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Caracteres extraños en consulta ODBC.

Publicado por Enrique (6 intervenciones) el 12/03/2021 13:52:00
Es mi primer mensaje en el foro aunque lo conozco porque he aprendido bastante leyendo los vuestros, así que un saludo a todos.
En primer lugar deciros que trabajo bajo Windows y con XAMPP. Estoy haciendo un código en PHP para obtener información mediante ODBC a una base de datos alojada en un servidor con el sistema operativo THEOS CORONA. Sé que el 99,99% de vosotros no conoceréis este S.O. pero es lo de menos. He instalado el driver ODBC (32 bits) que usa este S.O. y tras configurarlo, lo testeo y funciona perfectamente. Hago una prueba desde MS EXCEL y obtengo la información deseada. Mi problema surge cuando intento obtener la misma información desde PHP. Lo que obtengo son multitud de caracteres extraños en lugar de lo esperado. Esto es lo que obtengo:

Codigo Concepto
p� p� `$[(p� �
p� p� `$[(p�
p� p� `$[(p� ����
p� p� `$[(p� ���
p� p� `$[(p� ����0
p� p� `$[(p� �
p� p� `$[(p� ����0p�
p� p� `$[(p
p� p� `$[(p� �
p� p� `$[(p� �
p� p� `$[(p� �
p� p� `$[(p� �
p� p� `$[(p� �
p� p� `$[(p� �
p� p� `$[(p� �

He intentado encontrar algo de luz en internet pero no he encontrado la solución. El código PHP que utilizo es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
		<title>Prueba de ODBC</title>
    </head>
	<body>
<?php
	$server1 = "*****";
	$database1 = "*****";
	$port1 = "2500";
	$dsn1 = "Driver={THEOS Data Base Driver};Server=$server1;Port=$port1;Database=$database1;";
	$user1 = "BOSS";
	$password1 = "*****";
	$conexion1 = odbc_connect($dsn1, $user1, $password1) or die("Error en la conexion con ODBC.");
	echo "Estoy en servidor ASUS. Conexi&oacute;n ODBC correcta<br>";
 
	$server2 = "localhost";
	$user2 = "root";
	$password2 = "*****";
	$database2 = "******";
	$conexion2 = mysqli_connect($server2, $user2, $password2, $database2) or die ("Error en la conexi&oacute;n con MySQL.");
	echo "Conexi&oacute;n MySQL correcta<br>";
 
	$sql1 = "SELECT clave, nombre_actividad FROM ACTICLIE";
	$result1 = odbc_exec($conexion1, $sql1);
	if (!$result1) {
		exit("Error en odbc_exec");
	}
	echo "<table width=700 border=1 align=center cellpadding=0 cellspacing=0><tr><td><b>Codigo</b></td><td><b>Concepto</b></td></tr>";
 
	while ($row = odbc_fetch_row($result1)) {
		$cla = odbc_result($result1, 1);
		$nom = odbc_result($result1, 2);
 
		echo"<tr><td>$cla</td><td>$nom</td></tr>";
		//$sql2 = "INSERT INTO acticlie (klave, nombre_actividad) VALUES ($cla, '$nom')";
		//$result2 = mysqli_query($conexion2, $sql2) or die ("Error al grabar en tabla ACTICLIE");
 
	}
	echo"</table>";
	echo"</table>";
 
	odbc_free_result($result1);
	odbc_close($conexion1);
	mysqli_close($conexion2);
?>
 
	</body>
</html>

Los ***** en el código anterior los he puesto para no comprometer la privacidad, pero sustituyéndolos por los valores correctos la conexión se realiza en los dos servidores.

¿Alguien me puede echar una mano y ayudarme?

Gracias de antemano y un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder