Спустя 2 минуты, 50 секунд (2.11.2011 - 00:24) caballero написал(а):
mysql_query()
Спустя 10 часов, 16 минут, 4 секунды (2.11.2011 - 10:40) toshjkeee написал(а):
Вот весь код:
При запуске выводится ошибка:
<?
$bdhost = "open-server"; // Хост
$bduser = "wphost"; // Имя пользователя
$bdpassword = ""; // Пароль
$bdconnect = mysql_connect($bdhost, $bduser, $bdpassword) or die(mysql_error());
mysql_query("CREATE DATABASE as") or die(mysql_error());
mysql_query("CREATE USER 'as'@'%'") or die(mysql_error());
mysql_query("GRANT ALL PRIVILEGES ON * . * TO 'as'@'%' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0") or die(mysql_error());
mysql_query("GRANT ALL PRIVILEGES ON `as` . * TO 'as'@'%'") or die(mysql_error());
mysql_query(file_get_contents('import-db.sql')) or die(mysql_error());
mysql_close($bdconnect);
?>
При запуске выводится ошибка:
Цитата |
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as' at line 1 |
В import-db.sql ошибок быть не может.
Спасибо.
Спустя 1 час, 49 минут, 38 секунд (2.11.2011 - 12:30) caballero написал(а):
так введи запросы отдельно в каком нибудь mysql клиенте и посмотри в каком конкретно ошибка
или кроме тупого die выведи код запроса в котором ошибка.
если готов второй день ждать пока добрый дядя на форуме разберется в твоем коде так хотя бы выполни элементарные действия чтобы этому дяде упростить задачу локализовав ошибку а не преъдявляя целую портянку кода.
или кроме тупого die выведи код запроса в котором ошибка.
если готов второй день ждать пока добрый дядя на форуме разберется в твоем коде так хотя бы выполни элементарные действия чтобы этому дяде упростить задачу локализовав ошибку а не преъдявляя целую портянку кода.
Спустя 3 минуты, 54 секунды (2.11.2011 - 12:34) toshjkeee написал(а):
Кажется я понял, надо сделать select db... не смейтесь, если не так, я новичок.
Подскажите, пожалуйста, как это сделать? mysql_select_db("as"); ?
Подскажите, пожалуйста, как это сделать? mysql_select_db("as"); ?
Спустя 13 минут, 45 секунд (2.11.2011 - 12:48) killer8080 написал(а):
mysql_query("CREATE DATABASE `as`") or die(mysql_error());
Спустя 1 минута, 23 секунды (2.11.2011 - 12:49) killer8080 написал(а):
toshjkeee
AS - в mysql служебное слово, нужно экранировать ``
AS - в mysql служебное слово, нужно экранировать ``
Спустя 31 минута, 22 секунды (2.11.2011 - 13:20) caballero написал(а):
переименуй в ass и все будет в порядке
Спустя 7 минут, 43 секунды (2.11.2011 - 13:28) toshjkeee написал(а):
Вот новый код:
Он генерирует случайные название бд, логин бд и создаёт бд с этими данными.
Вот два вопроса:
1) У меня также тут есть генератор пароля ($bdpasswordgen), но как выставить пароль на бд через php?
2) Как сделать импорт sql файла в бд?
<?
function generatePassword($length = 16)
{
$chars = 'abdefhiknrstyzABDEFGHKNQRSTYZ0123456789';
$numChars = strlen($chars);
$string = '';
for ($i = 0; $i < $length; $i++)
{
$string .= substr($chars, rand(1, $numChars) - 1, 1);
}
return $string;
}
$bdnamegen = generatePassword(16);
$bdusergen = generatePassword(16);
$bdpasswordgen = generatePassword(16);
$bdhost = "open-server"; // Хост
$bduser = "wphost"; // Имя пользователя
$bdpassword = ""; // Пароль
$bdconnect = mysql_connect($bdhost, $bduser, $bdpassword) or die(mysql_error());
mysql_query("CREATE DATABASE `$bdnamegen`") or die(mysql_error());
mysql_query("CREATE USER '$bdusergen'@'localhost'") or die(mysql_error());
mysql_query("GRANT ALL PRIVILEGES ON * . * TO '$bdusergen'@'%' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0") or die(mysql_error());
mysql_query("GRANT ALL PRIVILEGES ON `$bdnamegen` . * TO '$bdusergen'@'%'") or die(mysql_error());
mysql_close($bdconnect);
?>
Он генерирует случайные название бд, логин бд и создаёт бд с этими данными.
Вот два вопроса:
1) У меня также тут есть генератор пароля ($bdpasswordgen), но как выставить пароль на бд через php?
2) Как сделать импорт sql файла в бд?
Спустя 3 часа, 58 минут, 52 секунды (2.11.2011 - 17:27) killer8080 написал(а):
Цитата (toshjkeee @ 2.11.2011 - 13:28) |
1) У меня также тут есть генератор пароля ($bdpasswordgen), но как выставить пароль на бд через php? |
наверно так
mysql_query("CREATE DATABASE `".$bdnamegen."`") or die(mysql_error());
mysql_query("
GRANT ALL PRIVILEGES ON `".$bdnamegen."` . *
TO '".$bdusergen."'@'%'
IDENTIFIED BY '".$bdpasswordgen."'
WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0
") or die(mysql_error());
Спустя 3 часа, 36 минут, 59 секунд (2.11.2011 - 21:04) toshjkeee написал(а):
Цитата (killer8080 @ 2.11.2011 - 14:27) | ||
наверно так mysql_query("CREATE DATABASE `".$bdnamegen."`") or die(mysql_error()); |
Спасибо. Правильно.
Осталось только узнать, как импортировать файл в бд
Спустя 1 час, 14 минут, 24 секунды (2.11.2011 - 22:18) killer8080 написал(а):
Цитата (toshjkeee @ 2.11.2011 - 21:04) |
Осталось только узнать, как импортировать файл в бд |
используй mysqli
$db = new mysqli('host', 'user', 'pass', 'db_name');
$db->multi_query($sql_dump);
Спустя 1 час, 33 минуты, 24 секунды (2.11.2011 - 23:52) toshjkeee написал(а):
Код:
Ошибка:
<?
$sql_dump = (sql.txt);
$db = new mysqli('open-server', 'aaa', '', 'aaa');
$db->multi_query($sql_dump);
?>
Ошибка:
Цитата |
Notice: Use of undefined constant sql - assumed 'sql' in W:\html\wphost\www\import.php on line 2 Notice: Use of undefined constant txt - assumed 'txt' in W:\html\wphost\www\import.php on line 2 |
Спустя 4 минуты (2.11.2011 - 23:56) Игорь_Vasinsky написал(а):
killer8080
Цитата |
GRANT ALL PRIVILEGES ON `".$bdnamegen."` . * TO '".$bdusergen."'@'%' IDENTIFIED BY '".$bdpasswordgen."' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 |
да чтож такое.. учишь учишь, пишешь.. а оказывается ни хрена не знаешь.... всё-> я тепер на своём ноуте играть буду.
Спустя 1 час, 18 минут, 37 секунд (3.11.2011 - 01:14) killer8080 написал(а):
Цитата (toshjkeee @ 2.11.2011 - 23:52) |
Ошибка:Цитата Notice: Use of undefined constant sql - assumed 'sql' in W:\html\wphost\www\import.php on line 2 Notice: Use of undefined constant txt - assumed 'txt' in W:\html\wphost\www\import.php on line 2 |
Ну так ещё бы, это что?
$sql_dump = (sql.txt);
наверно подразумевалось это?
$sql_dump = file_get_contents('sql.txt');
Цитата (Игорь_Vasinsky @ 2.11.2011 - 23:56) |
да чтож такое.. учишь учишь, пишешь.. а оказывается ни хрена не знаешь.... всё-> я тепер на своём ноуте играть буду. |
Не огорчайся ты так, открою маленький секрет, команды администрирования mysql можно подсмотреть в PMA



Спустя 8 часов, 58 минут, 58 секунд (3.11.2011 - 10:13) toshjkeee написал(а):
Работает, Работает, Работает!!! Спасибо
Доволен как слон!!! А коннект с бд надо закрывать?

Спустя 18 минут, 10 секунд (3.11.2011 - 10:32) toshjkeee написал(а):
код:
Ошибки:
<?
function generatePassword($length = 16)
{
$chars = 'abdefhiknrstyzABDEFGHKNQRSTYZ0123456789';
$numChars = strlen($chars);
$string = '';
for ($i = 0; $i < $length; $i++)
{
$string .= substr($chars, rand(1, $numChars) - 1, 1);
}
return $string;
}
$sql_dump = file_get_contents('sql.txt');
$bdnamegen = generatePassword(16);
$bdusergen = generatePassword(16);
$bdpasswordgen = generatePassword(16);
$bdhost = "open-server"; // Хост
$bduser = "wphost"; // Имя пользователя
$bdpassword = ""; // Пароль
$bdconnect = mysql_connect($bdhost, $bduser, $bdpassword) or die(mysql_error());
mysql_query("CREATE DATABASE `$bdnamegen`") or die(mysql_error());
mysql_query("CREATE USER '$bdusergen'@'localhost' IDENTIFIED BY '$bdpasswordgen'") or die(mysql_error());
mysql_query("GRANT ALL PRIVILEGES ON * . * TO '$bdusergen'@'%' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0") or die(mysql_error());
mysql_query("GRANT ALL PRIVILEGES ON `$bdnamegen` . * TO '$bdusergen'@'%'") or die(mysql_error());
mysql_close($bdconnect);
$db = new mysqli('open-server', '$bdusergen', '$bdpasswordgen', '$bdnamegen');
$db->multi_query($sql_dump);
$db->close();
?>
Ошибки:
Цитата |
Warning: mysqli::mysqli() [mysqli.mysqli]: (28000/1045): Access denied for user '$bdusergen'@'127.0.0.5' (using password: YES) in W:\html\wphost\www\sql.php on line 26 Warning: mysqli::multi_query() [mysqli.multi-query]: Couldn't fetch mysqli in W:\html\wphost\www\sql.php on line 27 Warning: mysqli::close() [mysqli.close]: Couldn't fetch mysqli in W:\html\wphost\www\sql.php on line 28 |
Что не так тут? Спасибо
Спустя 4 часа, 5 минут, 44 секунды (3.11.2011 - 14:37) killer8080 написал(а):
А зачем два соединения с БД?
$db = new mysqli($bdhost, $bduser, $bdpassword) or die($db->error);
$query = array();
$query []= "CREATE DATABASE `$bdnamegen`";
$query []= "USE `$bdnamegen`";
$query []= "CREATE USER '$bdusergen'@'localhost' IDENTIFIED BY '$bdpasswordgen'";
$query []= "GRANT ALL PRIVILEGES ON * . * TO '$bdusergen'@'%' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0";
$query []= "GRANT ALL PRIVILEGES ON `$bdnamegen` . * TO '$bdusergen'@'%'";
$query []= file_get_contents('sql.txt');
$query = implode(";\r\n", $query).';';
$db->multi_query($query) or die($db->error);
Спустя 4 минуты, 40 секунд (3.11.2011 - 14:42) sergeiss написал(а):
Цитата (toshjkeee @ 3.11.2011 - 11:32) |
Что не так тут? Спасибо |
Убери одинарные кавычки:
//Вместо
$db = new mysqli('open-server', '$bdusergen', '$bdpasswordgen', '$bdnamegen');
// напиши
$db = new mysqli('open-server', $bdusergen, $bdpasswordgen, $bdnamegen);
Спустя 29 минут, 54 секунды (3.11.2011 - 15:12) Игорь_Vasinsky написал(а):
