Не могу выполнить mysql запрос через PHP больше одной строки ?
Вот так я удаляю таблицу users из базы все работает
$sql = 'DROP TABLE fr7910hy_users.Users';
if (mysql_query($sql, $link)) {
echo "Database my_db was successfully dropped\n";
} else {
echo 'Error dropping database: ' . mysql_error() . "\n";
}
?>
Тепереь мне надо выполнить mysql команду такого типа
SET @num :=0;
UPDATE Users SET id = @num := (@num+1);
ALTER TABLE Users AUTO_INCREMENT =1;
Пробую так как указано в документации по множетсвенный запросам не выходит что то
$sql = "SET @num :=0;
UPDATE fr7910hy.Users SET id = @num := (@num+1);
ALTER TABLE fr7910hy.Users AUTO_INCREMENT =1;"
пробую так через phpMyadmin там это код выполняется через php каак то видимо правильно оформить надо строку но не знаю как
Способ найден!
$query = "SET @num :=0;";
$query .= "UPDATE Users SET id = @num := (@num+1);";
$query .= "ALTER TABLE Users AUTO_INCREMENT =1;";
/* execute multi query */
$mysqli->multi_query($query);
do {
/* store the result set in PHP */
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
}
/* print divider */
if ($mysqli->more_results()) {
printf("-----------------\n");
}
} while ($mysqli->next_result());
Ну так создай в базе хранимую процедуру, содержащую группу команд. И вызывай её одной командой.
Но тот код, который ты привёл, вызывает вопросы.
Во первых, если ты УДАЛИЛ таблицу, то каким образом ты хочешь делать UPDATE и ALTER TABLE несуществующей таблицы?
Во вторых, НЕ НАДО перенумеровывать первичный ключ. НИКОГДА не надо. Первичный ключ (даже автоинкрементный) - НЕ способ нумерации, а способ назначить каждой записи таблицы УНИКАЛЬНЫЙ идентификатор. И если первичный ключ уже был использован в таблице, он НЕ ДОЛЖЕН назначаться другим записям.
P.S. Идея использовать первичный ключ для последовательной нумерации приходит в голову очень многом новичкам, не понимающим, что первичные ключи - механизм организации связей между таблицами и перенумерация первичных ключей разрушает эти связи, а повторное использование ранее удалённых первичных ключей приводит к непредсказуемым последствиям.
можно использовать функцию mysqli_multi_query()