una tablas recomendaciones queries porque optimizador lento lenta las grandes daƱan cuello consulta como botella agilizar mysql rows updating

recomendaciones - tablas grandes mysql



ActualizaciĆ³n de una columna en todas las filas de una tabla (1)

Quiero actualizar una misma columna en todas las filas de una tabla. ¿Puede alguien darme una mano sobre cómo actualizar la tabla? solo hay un campo de entrada que debe actualizar el valor de todas las filas. este código no funciona y sé que hay un error en el índice y la matriz.

<?php <form method="post" dir="rtl" name="maxcharfield" > <textarea onKeyDown="textCounter(this,''progressbar1'',300)" onKeyUp="textCounter(this,''progressbar1'',300)" onFocus="textCounter(this,''progressbar1'',300)" style="font-family:''B_yekan'';" id="text" name="text" rows="0" cols="0" class="required"></textarea> <div class="cleaner h10"></div> <div style="font-family:''B_yekan'';" dir="rtl" id="progressbar1" class="progress" ></div> <script>textCounter(document.getElementById("maxcharfield"),"progressbar1",100)</script> <input class="styled-button-8" style="margin-top:10px; float:right; margin-right:50px; font-size: 14px; padding: 5px 14px;" type="submit" value="save" name="Submit" /> <input style="font-family:''B_yekan'';" type="reset" value="reset" id="reset" name="reset" class="submit_btn float_l" /> </form> <?php // for updating Check if button name "Submit" is active, do this if(isset($_POST[''Submit'']) && $_POST[''Submit''] == ''save'') { $sql1="UPDATE `".$tbl_name."` SET `board`=''".$_REQUEST[''text'']."'' "; $result1=mysql_query($sql1); } } ?>


Estás sobre-complicando la solución. Para actualizar cada registro, el enfoque que está tratando de tomar es:

  1. Seleccione todos los registros.
  2. Obtenga la ID de cada registro.
  3. Recorrer las IDs.
  4. Actualice cada registro por ese ID.

La sintaxis de UPDATE tiene una manera mucho más fácil de hacer esto. No es necesario que proporcione una cláusula WHERE a una instrucción UPDATE . Sin esa cláusula, por defecto actualizará cada registro en la tabla:

UPDATE TableName SET `board`=''value''

Además , tenga en cuenta que tiene una vulnerabilidad de inyección SQL en su código. Al usar $_REQUEST[''text''] directamente en su consulta SQL, le permite a cualquier usuario enviar código SQL a su consulta. Tu código luego ejecuta lo que te envíen. Esto podría permitirles corromper o eliminar sus datos, incluso obtener acceso administrativo a su servidor.

Para empezar, deje de usar las funciones mysql_* . PHP los ha desaprobado y ya no deberían usarse. Hay un reemplazo mysqli_ para ellos. Además de eso, use la función mysqli_real_escape_string() para sanear sus entradas antes de usarlas en una consulta SQL. Y, finalmente, use declaraciones preparadas en lugar de concatenar directamente los valores en su cadena SQL.