| |
|
|
| | Считываю построчно данные из файла и исполняю их в mysql
например строка считываю строку из другого файла.
$line = CREATE TABLE '".$dbprefix."anketa'
и исполняю в текущем файле.
mysql_query($line);
как заменить $dbprefix на его значение? это необходимо сделать в текущем файле.
т.е как получить если $dbprefix = "ww1_";
mysql_query(CREATE TABLE 'ww1_anketa' ) | |
| |
|
|
| |
|
|
| |
для: epc
(21.06.2006 в 16:48)
| | | Например, можно так, если понял суть проблемы:
<?php
//Загоняем все префиксы в один массив
$prefix = array(
"ww1",
"ww2",
"prefix",
"prefix2"
);
foreach($prefix as $pref)
{
mysql_query("CREATE TABLE '".$pref."_anketa';");
}
echo "Было создано ".count($prefix)." таблиц"; //4
?>
|
| |
| |
|
|
| |
|
|
| |
для: Unkind™
(21.06.2006 в 16:57)
| | | я думаю он не имел ввиду создать 15 таблиц | |
| |
|
|
| |
|
|
| |
для: valenok
(21.06.2006 в 16:58)
| | | я думаю он не имел ввиду создать 15 таблиц
Не понял... | |
| |
|
|
| |
|
|
| |
для: valenok
(21.06.2006 в 16:58)
| | | дело в том что я не могу написать
mysql_query("CREATE TABLE '".$pref."_anketa' ;");
я могу написать
mysql_query($line)
а $line в свою очередь будет равна "CREATE TABLE '".$pref."_anketa' ;" эти данные считываются из текстового документа, в котором эта переменнная просто набор символов.
так вот есть ли функция которая сможет сделать так
$pref = "ww1";
$line2 = ФУНКУЦИЯ_ЗАМЕНЯЮЩАЯ_ПЕРЕМЕННЫЕ_НА_ЗНАЧЕНИЯ ($line);
и $line в итоге будет "CREATE TABLE 'ww1_anketa' ; | |
| |
|
|
| |
|
|
| |
для: epc
(21.06.2006 в 17:07)
| | | Такая функция есть - str_replace(), но для её работы потребуется подстрока замены, т.е. мы не можем просто вставить - нужно существующую подстроку заменить на новую
<?php
$line = "CREATE TABLE 'ww1_anketa' ";
$line = str_replace("ww1_","ww2_",$line);
echo $line; // "CREATE TABLE 'ww2_anketa' "
?>
|
| |
| |
|
|
| |
|
|
| |
для: cheops
(21.06.2006 в 18:26)
| | | Это не свосем то что ему надо.
Перемнная $prefix генерируется скриптом.
Дальше и зфайла достаём строку: CREATE TABLE $prefix tbl
Тоесть надо создать таблицу запросом CREATE TABLE $prefix tbl
только заменить "$prefix" на значение переменной сгенерированной во время исполнения скрипта.
А хотя вообще можно такое:
<?php
$line = "CREATE TABLE 'ww1_anketa' ";
$line = str_replace("$prefix",$prefix,$line);
echo $line; // "CREATE TABLE 'ww2_anketa' "
?>
|
| |
| |
|
|
| |
|
|
| |
для: epc
(21.06.2006 в 16:48)
| | | А откуда берется значение этого префикса? | |
| |
|
|
| |
|
|
| |
для: epc
(21.06.2006 в 16:48)
| | | А.
<?
$line=eval("CREATE TABLE ".$dbprefix."anketa");
|
| |
| |
|
|
| |
|
|
| |
для: valenok
(21.06.2006 в 17:01)
| | | Я думаю, в таком случае надо даже так:
<?
$line="CREATE TABLE ".eval($dbprefix)."anketa";
?>
|
| |
| |
|
|
| |
|
|
| |
для: valenok
(21.06.2006 в 17:01)
| | | Мда...Зачем это будет нужно только? Для создания возможной дыры в скрипте чтоли?
ФУНКУЦИЯ_ЗАМЕНЯЮЩАЯ_ПЕРЕМЕННЫЕ_НА_ЗНАЧЕНИЯ ($line);
А зачем писать такую функцию?? Просто вместо этих переменных пишите $line | |
| |
|
|
| |
|
|
| |
для: Unkind™
(21.06.2006 в 17:03)
| | | Дело в том что я не могу писать сам запрос в исполняемом файле, он(запрос) берется из другого текстового файла построчно. А в исполняемом мне нужно только подставить значение вместо переменной в каждую строку. | |
| |
|
|
| |
|
|
| |
для: epc
(21.06.2006 в 17:22)
| | |
$lina = eval($line);
mysql_query($line);
|
| |
| |
|
|
| |
|
|
| |
для: epc
(21.06.2006 в 17:22)
| | | Сработало следующим образом
выполнил функцию
eval("\$line = \"$line\";");
и все названия переменных в $line поменялись на значения.
но вот загвоздка
если берем строку
CREATE TABLE '$dbprefix anketa' - с пробелом, то после выполнения функции отлично меняет на
CREATE TABLE 'ww1_ anketa'
но как сделать, чтобы не оставалось пробела ?
причем текстовый файл т.е. строку CREATE TABLE '$dbprefix anketa' я могу менять как угодно | |
| |
|
|
| |
|
|
| |
для: epc
(21.06.2006 в 17:30)
| | | CREATE TABLE '$dbprefix'.'anketa' | |
| |
|
|
| |
|
|
| |
для: valenok
(21.06.2006 в 17:36)
| | | а как лучше , как у тебя или как у меня ? | |
| |
|
|
| |
|
|
| |
для: epc
(21.06.2006 в 17:50)
| | | Лучше как тебе удобней
если скрипт не большой
--
Разница может быть только во времени. | |
| |
|
|
| |
|
|
| |
для: epc
(21.06.2006 в 17:30)
| | | Сработало следующим образом строку в текстовом файле поменял на
CREATE TABLE '{$dbprefix}anketa'
|
всем большое спасибо, особенно валенку, понимаешь все так как надо и с полуслова. | |
| |
|
|