Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
byulent
0 / 0 / 1
Регистрация: 21.09.2014
Сообщений: 16
1

Не выполняется блок с условиями

21.09.2014, 16:33. Просмотров 822. Ответов 4
Метки нет (Все метки)

Написал код, который из взятых ранее данных о том, какой модуль mysql установлен, формирует соответствующие запросы: если это mysql, то он выполняет mysql-операции (mysql_query, mysql_connect и др.), и соответственно с mysqli.
Однако тот блок условий, который должен проверять совпадение строк, даже не выполняется...
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
if (strcmp($module, "mysql")===0){
    mysql_connect($_POST['mysqlserver'], $_POST['mysqllogin'], $_POST['mysqlpass']) or die(mysql_error());
    $exist_db=mysql_query("SHOW DATABASES LIKE '{$_POST['dbname']}';");
    if ($exist_db==FALSE){
    mysql_query("CREATE DATABASE {$_POST['dbname']};") or die (mysql_error());
    echo $DATABASE_SUCCESSFULLY_CREATED;
    }
    mysql_select_db($_POST['dbname']) or die (mysql_error());
    $exist_table=mysql_query("SHOW TABLES LIKE '{$_POST['dbtable']}';");
    if ($exist_table==FALSE){
    mysql_query("CREATE TABLE {$_POST['dbtable']} (
    id INT AUTO_INCREMENT,
    type CHAR(255),
    login CHAR(255),
    password CHAR(255),
    PRIMARY KEY(id)
    )") or die (mysql_error());
    echo $TABLE_SUCCESSFULLY_CREATED;
    }
    $passhash=md5($_POST['admpass']);
    mysql_query("INSERT INTO {$_POST['dbtable']}(type, login, password) VALUES ('admin','{$_POST['admlogin']}','$passhash');") or die (mysql_error());
    echo $INSTALL_SUCCESSFULL;
    } else if (strcmp($module,"mysqli")===0){
    mysqli_connect($_POST['mysqlserver'], $_POST['mysqllogin'], $_POST['mysqlpass']) or die(mysqli_error());
    $exist_db=mysqli_query("SHOW DATABASES LIKE '{$_POST['dbname']}';");
    if ($exist_db==FALSE){
    mysqli_query("CREATE DATABASE {$_POST['dbname']};") or die (mysqli_error());
    echo $DATABASE_SUCCESSFULLY_CREATED;
    }
    mysqli_select_db($_POST['dbname']) or die (mysqli_error());
    $exist_table=mysqli_query("SHOW TABLES LIKE '{$_POST['dbtable']}';");
    if ($exist_table==FALSE){
    mysqli_query("CREATE TABLE {$_POST['dbtable']} (
    id INT AUTO_INCREMENT,
    type CHAR(255),
    login CHAR(255),
    password CHAR(255),
    PRIMARY KEY(id)
    )") or die (mysqli_error());
    echo $TABLE_SUCCESSFULLY_CREATED;
    }
    $passhash=md5($_POST['admpass']);
    mysqli_query("INSERT INTO {$_POST['dbtable']}(type, login, password) VALUES ('admin','{$_POST['admlogin']}','$passhash');") or die (mysqli_error());
    echo $INSTALL_SUCCESSFULL;
    }
При этом выше всё работает нормально:
PHP
1
2
3
4
5
6
7
if (strcmp($module, "mysqli")===0){
    echo mysqli_get_client_info();
    } else if (strcmp($module, "mysql")===0){
    echo mysql_get_client_info();
    } else {
    echo $MYSQL_NOT_INSTALLED;
    }
В чём проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2014, 16:33
Ответы с готовыми решениями:

Перенаправление на другую страницу с условиями
привет! ести проблемка, я делаю страницу голосование /опрос, на первой странице пользователь вводит...

Формирование переменной с условиями
Здравствуйте, с наступающим НГ Мне нужно записать в каждый товар значения, тут происходит запись...

Удаление строки таблицы с условиями
Всем привет. Подскажите пожалуйста,как поменять данный код,чтобы удаление происходило не по 1 полю...

Вставка html в php с условиями
Приветствую! :) Ещё весной хотел осуществить одну свою задумку, но все руки как-то не доходили....

.htaccess редирект из корня с условиями
RewriteCond %{HTTPS} =on RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 RewriteEngine On...

4
ft4l
Невнимательный
218 / 191 / 79
Регистрация: 08.02.2013
Сообщений: 588
Записей в блоге: 1
21.09.2014, 21:01 2
Лучший ответ Сообщение было отмечено byulent как решение

Решение

попробуйте поставить в начале скрипта
PHP
1
error_reporting(E_ALL);
что-то не нашёл в "Синонимы и устаревшие Функции Mysqli" такие mysqli_*()-функции
и если например mysql_query("SHOW DATABASES LIKE '{$_POST['dbname']}';"); не найдёт базу - не значит что mysql_query() вернёт FALSE
0
byulent
0 / 0 / 1
Регистрация: 21.09.2014
Сообщений: 16
21.09.2014, 21:21  [ТС] 3
Цитата Сообщение от ft4l Посмотреть сообщение
попробуйте поставить в начале скрипта
Код PHP
1
error_reporting(E_ALL);
Стоит уже давно, как только начал писать этот скрипт. Ничего почему-то не показывается.
Цитата Сообщение от ft4l Посмотреть сообщение
что-то не нашёл в "Синонимы и устаревшие Функции Mysqli" такие mysqli_*()-функции
http://ru2.php.net/manual/ru/mysqli.query.php
http://ru2.php.net/manual/ru/mysqli.error.php
http://ru2.php.net/manual/ru/mysqli.select-db.php
http://ru2.php.net/manual/ru/function.mysqli-connect.php
Цитата Сообщение от ft4l Посмотреть сообщение
и если например mysql_query("SHOW DATABASES LIKE '{$_POST['dbname']}';"); не найдёт базу - не значит что mysql_query() вернёт FALSE
Да что ты говоришь:
Для запросов SELECT, SHOW, DESCRIBE, EXPLAIN и других запросов, возвращающих результат из нескольких рядов, mysql_query() возвращает дескриптор результата запроса (resource), или FALSE в случае ошибки.
0
ft4l
Невнимательный
218 / 191 / 79
Регистрация: 08.02.2013
Сообщений: 588
Записей в блоге: 1
21.09.2014, 21:35 4
Лучший ответ Сообщение было отмечено byulent как решение

Решение

Код
mysql> SHOW DATABASES LIKE 'nothing';
Empty set (0.00 sec)
== Никакой ошибки...просто пустой результат
mysqli.query.php
спасибо не знал
Ничего почему-то не показывается.
По крайней мере должно появляться в error.log
или я не знаю что кроме перезаписи в промежутке переменной $module может заставить работать по разному две идентичных проверки
0
byulent
0 / 0 / 1
Регистрация: 21.09.2014
Сообщений: 16
22.09.2014, 18:55  [ТС] 5
Дописал к скрипту это:
PHP
1
2
3
 else {
    echo "Some shit";
    }
Что бы вы думали? Не выводит ничего.
Цитата Сообщение от ft4l Посмотреть сообщение
По крайней мере должно появляться в error.log
А где его взять, интересно? Перерыл всю ОСь, как-то не нашёл ничего...

Добавлено через 16 минут
Цитата Сообщение от byulent Посмотреть сообщение
Цитата Сообщение от ft4l Посмотреть сообщение
По крайней мере должно появляться в error.log
А где его взять, интересно? Перерыл всю ОСь, как-то не нашёл ничего...
Извиняюсь. Нашёл. Вот что выводит:
Код
PHP Warning:  mysqli_query() expects at least 2 parameters, 1 given in /usr/share/nginx/html/tataba/install.php on line 178
PHP Warning:  mysqli_query() expects at least 2 parameters, 1 given in /usr/share/nginx/html/tataba/install.php on line 180
PHP Warning:  mysqli_error() expects exactly 1 parameter, 0 given in /usr/share/nginx/html/tataba/install.php on line 180"
Добавлено через 19 часов 27 минут
Всё, проблема решена путём гуглинга ошибок из лога. Да, и вот это
Цитата Сообщение от ft4l Посмотреть сообщение
и если например mysql_query("SHOW DATABASES LIKE '{$_POST['dbname']}';"); не найдёт базу - не значит что mysql_query() вернёт FALSE
всё-таки оказалось верным (по крайней мере, для mysqli).
0
22.09.2014, 18:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2014, 18:55

Создание и запись в файл массива с условиями
Здравствуйте! Необходимо создать массив и записать его в файл (out.txt) по примеру файла...

не выполняется запрос в коде, но выполняется в phpliteadmin
всем привет! необходима небольшая помощь, есть бд с таблицей "keys" и одной из колонок в ней -...

Запрос с условиями
Здравствуйте! Пишу админку для галереи. Всё работает...но хотелось бы сделать всё работало красиво...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru