Mysql
 sql >> база данни >  >> RDS >> Mysql

Пряк път за актуализиране на ред на таблица в базата данни?

Повече заявки означават повече време, така че ако актуализирате всяко поле поотделно (а не ред по ред), това ще отнеме значително повече време.

Също така може да искате да приложите филтър към изпратените стойности, за да сте сигурни, че няма поле, което не искате да се актуализира.

Например, ако имате таблица с потребители, които са имали салда по акаунти, изброени срещу тях:

id | user       | credit
==========================
1  | John Smith | 50

Ако можех да изпратя формуляр на вашия манипулатор на формуляри, тъй като полето "кредит" ще се покаже в SHOW COLUMNS... запитване, мога да ви изпратя изпратено POST чрез формуляр, предназначен да се използва за промяна на името си, с $_POST['user'] = "Mike Rowe" и $_POST['credit'] = 9999 , и бихте променили горното на:

id | user       | credit
==========================
1  | Mike Rowe  | 9999

АКТУАЛИЗИРАНЕ: Препоръчително решение

Вместо да вярвате, че имената на полетата в базата данни са безопасни за използване за обработка на заявка като тази, защо да не имате свой собствен масив от полета, които могат да се редактират и просто да ги прегледате?

$editable_fields = array(
  'pg_url' ,
  'pg_title' ,
  ...
);

$form_values = array();
$sql_pattern = array();
foreach( $editable_fields as $k ){
  if( $k != 'pg_id'
      && isset( $_POST[$k] ) ){
    $form_values[$k] = $_POST[$k];
    // NOTE: You could use a variant on your above code here, like so
    // $form_values[$k] = set_variable( $_POST , $k );
    $sql_pattern[] = "$k = ?";
  }
}

$sql_pattern = 'UPDATE root_pages SET '.implode( ' , ' , $sql_pattern ).' WHERE pg_id = ?';

# use the instantiated db connection object from the init.php, to process the query
$result = $connection->run_query($sql_pattern,array_merge(
    $form_values ,
    $_POST['pg_id']
    ));

ЗАБЕЛЕЖКА:Този код не е тестван и не е начинът, по който обикновено действам, така че го използвайте като ръководство, а не като библия...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Търсене на критерии въз основа на TextField и меню със списък

  2. Вземете изображение от MySQL база данни - C#

  3. php- получаване на идентификатор на последното вмъкване

  4. Как да изпратите MySQL Database Data към MVC .NET уеб приложение

  5. Използване на php за връщане на стойности GROUP_CONCAT('column x').