php - solucion - Actualizando Columna SQL
validar insert mysql (1)
Primero asegúrese de que $column
esté en una lista aceptada de valores. A continuación, no puede enlazar :column
lo tendrá asignar así:
$stmt = $link->prepare(''UPDATE table SET '' . $column .'' = :num'');
$stmt->bindParam('':num'', $num);
$stmt->execute();
Si fuera a buscar una $column
válida, la usaría
$valid_column = preg_match(''/[a-z0-9_]/i, $column);
o un reemplazo suficiente ( preg_replace
). Aunque es probable que lo envuelva en un try / catch y establezca excepciones que se lanzarán en su instancia de PDO para asegurarse de que sea legítimo.
Entonces tengo una tabla con 6 columnas, cada columna corresponde a un cierto tipo de producto. Cada columna contiene un número que corresponde a la cantidad de veces que las personas han elegido ese tipo de producto.
A | B | C | D | E | F
---------------------
0 | 0 | 0 | 0 | 0 | 0
Entonces, si el usuario elige el tipo A
, entonces quiero actualizar el número de la columna A
de 0
a 1
. Así que aquí está el código SQL que escribí:
$link = new PDO(''***;dbname=***;charset=UTF-8'',''***'',''***'');
$stmt = $link->prepare("UPDATE table SET :column=:num");
$stmt->bindParam('':column'', $column);
$stmt->bindParam('':num'', $num);
$stmt->execute();
Pero no está actualizando nada en absoluto. Así que supongo que hay algo mal con el código SQL, lo más probable es que tenga que ver con el marcador de :column
. ¿Alguien puede decirme el código SQL correcto ?