RSS

  • YouTube
  • LinkedIn
  • Google

Archivos de la : PHP

Enlace varios valores en la instrucción SQL de PDO (PDOStatement)

Sometimes we need to search a single value through several columns when building SQL instructions.

Suppose the table below

  • [ENTITY_ONE]
    • ID
    • COLUMN_A
    • COLUMN_B
    • COLUMN_C
    • COLUMN_D
    • COLUMN_E

If we need search a single value on columns B,D y E we will need use the following instruction

In PHP code we can do

Bien, this can work but we know that isn’;t the best approach. We need use Binding Values to avoid SQL injection and other malicious treats.

Por lo tanto, the code can be modified to

Much better, but, when building complex SQL instruction, things can be confusing with lots of arguments and don’;t forget: ORDER MATTERS.

Happily PDO can bind values in different order when using named bindings.

Hmm, seems that this isn’;t good enough. We only change the use of 1-indexed placeholder to a :named placeholder. There’;s no gain beyond of code readable and the possibility to bind in any order.

Yes, but now we can do the best approach when using one unique search term in several columns. We can use only one bind to one or more :named placeholders ’;cause PDO is smart and clever. Look our final code here.

Can save a lot of typing when writing many SQL instruction using same argument.

Nombres de archivos con lista de 0 a la Z

Hoy fue la codificación algunos scripts y encontró un pequeño problema con un patrón definido.

El patrón es crear archivos donde la secuencia se inicia en 0 (cero) y no puede repetirse hasta Z.

Ejemplo:

myfile0.ext, myfile1.ext, myfile2.ext, (...), myfile9.ext, myfileA.ext, myfileB.txt, (...), myfileZ.txt

Bien, Esto no es un gran problema por lo utilizar este código.

Pero $Seq no dio el valor esperado de 0 (cero) en la primera carrera. En su lugar, fue en blanco.

Depuración de las variables, He visto que la while nunca se evalúa a true. Intentar reproducir en la línea de comandos vi in_array($Seq, $seqs); siempre volver true. Intenté utilizar “”, “R” y no importa qué valor, volviendo todavía true.

Por lo tanto cambiar para utilizar STRICT argumento para in_array to true and works for ‘;A’; through ‘;Z’;, but not for ‘;0; through ‘;9;.

Damn…; PHP es correcto, ;0; no es estrictamente igual a 0. El Chr función de retorno string y rango('0', '9') crea un array con integer valores.

Por lo tanto, Cambié el enfoque para evaluar todos los valores con STRICT, porque me gustaría crear un código limpio y sin ninguna otras funciones para utilizar.

This is the final code that I’;uso de m:

Cómo se puede ver, He cambiado el $seqs initial values from ‘;0; a su ASCII el código y volver a su valor que me dio un array con todos los valores de string tipo.

Nos vemos!

Error de comparación PHP

Hoy, Estaba escribiendo un script en PHP para ser utilizado en la línea de comandos cuando me topé con un comportamiento inesperado (por lo menos de mi parte).
El script debe recibir tres argumentos, la última de ellas una lista que contiene uno o más códigos numéricos.
Tratando de validar este último argumento fue conseguir un resultado diferente lo imaginado.
Ver el fragmento de código que estaba usando:

Continuar leyendo >>

Conversión de xor, SHR y shl de Delphi para PHP

Yo estoy migrando un software hecho en Delphi para PHP y me encontré con un problema en un jodido Función de cifrado bendito.

Sufrí un poco tratar de reescribir la función hace a la complejidad del código y con las diferencias en los resultados.

La función hace uso de operadores XOR y SHR en la versión de Delphi. El SHR fue relativamente fácil gracias a la experiencia con operadores bit a bit y como documentación de Delfos dice que el operador tira de bits a la derecha

Continuar leyendo >>