Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите разобраться пожалуйста
Форумы портала PHP.SU » » Работа с СУБД » Помогите разобраться пожалуйста

Страниц (2): [1] 2 »
 

1. Crazy_maker - 28 Июля, 2011 - 21:56:19 - перейти к сообщению
Ребят на этапе моего изучения у меня возникл просто клин на СУБД. Все нахваливают МуСКЛ а я вообще чувствую себя как баран возле новых ворот. Я сам делаю себе сайт и вся инфа на записях в разных файлах. Немного не удобно зато работает. А в случае с MySQL мне даже не удаеться подключиться к системе почему?
Чтобы вы могли понять излагаю наглядно.
В РНР.ini следующее:
[MySQL]
mysql.allow_persistent = On
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =

В программе это:
7. $loho = "";
8. $name_ = "";
9. $secur = "";
10. If (!MySQL_connect($loho, $name_, $secur):
11. print "Болты тебе";
12. else:
13. print "Ура";
14. endif;

А браузер пишет следующее:
Parse error: parse error, unexpected T_VARIABLE in z:\тест сайт\мускл\index.php on line 10

Я прошу расжевать что это все значит? И пожалуйста без издевок говор же как в темный лес забрел. Я уже весь ваш сайт перекопал, но так и не понял
2. LIME - 28 Июля, 2011 - 22:12:04 - перейти к сообщению
Crazy_maker пишет:
If (!MySQL_connect($loho, $name_, $secur):

надо еще раз скобочку закрыть
If (!MySQL_connect($loho, $name_, $secur)):
и лучше MySQL_connect писать только маленькими буквами потому-что регистрозависимость зависит от настроек поэтому от греха подальше
(Добавление)
и лучше это делать таким образом
$link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
or die("Could not connect : " . mysql_error());
чтобы в случае ошибки знать в чем дело
3. OrmaJever - 28 Июля, 2011 - 22:47:04 - перейти к сообщению
LIME пишет:
и лучше MySQL_connect писать только маленькими буквами потому-что регистрозависимость зависит от настроек поэтому от греха подальше

от каких? Подмигивание в php функции регистро-независимы, но всеровно лутше писать маленькими чтобы удонее читать Улыбка
4. LIME - 28 Июля, 2011 - 23:21:49 - перейти к сообщению
OrmaJever дада
извините
это видимо у меня из-за констант вылезло ))
5. Crazy_maker - 29 Июля, 2011 - 12:11:29 - перейти к сообщению
Закрыл я эту скобочку и все равно тоже самое. Что не так?
6. LIME - 29 Июля, 2011 - 13:34:50 - перейти к сообщению
LIME пишет:
$link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
or die("Could not connect : " . mysql_error());

(Добавление)
присвойте дескриптору
7. Crazy_maker - 29 Июля, 2011 - 15:31:59 - перейти к сообщению
Ура соединение разродилось причину нашел через тестовый режим, просто код скопировал с теста MySQL в денвере. Теперь возникла следующая проблема<?php

$link = mysql_connect("localhost", "root", "") or
die("Could not connect : " . mysql_error());


create table clients
(

familia char(40) NOT NULL,
imia char(30) NOT NULL,

);
mysql_close($link);

Браузер отвечает
Parse error: parse error, unexpected T_STRING in z:\тест сайт\мускл\index.php on line 15
15строка это выделенная
8. belphegor - 29 Июля, 2011 - 15:45:43 - перейти к сообщению
Crazy_maker пишет:
$link = mysql_connect("localhost", "root", "") or
die("Could not connect : " . mysql_error());


create table clients
(

familia char(40) NOT NULL,
imia char(30) NOT NULL,

);
mysql_close($link);


Это у вас код прям так идет? В этом случае интерпретатор не может раcпознать, что же вы тут понаписали:
CODE (htmlphp):
скопировать код в буфер обмена
  1. create table clients
  2. (
  3.  
  4. familia char(40) NOT NULL,
  5. imia char(30) NOT NULL,
  6.  
  7. );


Запрос к БД выполняется с помощью функции mysql_query($query,$link_id), т.е. надо так:

CODE (htmlphp):
скопировать код в буфер обмена
  1. $link = mysql_connect("localhost", "root", "") or
  2. die("Could not connect : " . mysql_error());
  3.  
  4. $query="create table clients(familia char(40) NOT NULL,imia char(30) NOT NULL);";
  5. mysql_query($query,$link);
  6. mysql_close($link);
9. LIME - 29 Июля, 2011 - 15:47:38 - перейти к сообщению
$query='create table clients(familia char(40) NOT NULL,imia char(30) NOT NULL)';
$result=mysql_query($query);
10. Мелкий - 29 Июля, 2011 - 15:47:41 - перейти к сообщению
Может для начала, изучите синтаксис PHP?

PHP понятий не имеет ни о каких там SQL. У него есть свой описанный и стандартный синтаксис. На всё, что в него не укладывается будет ошибка парсера.
И работать с SQL надо согласованно с синтаксисом PHP - т.е. все запросы с точки зрения программиста должны с точки зрения PHP являться строками и обрабатываться функциями.
11. Crazy_maker - 29 Июля, 2011 - 15:54:54 - перейти к сообщению
Мелкий пишет:
Может для начала, изучите синтаксис PHP?

PHP понятий не имеет ни о каких там SQL. У него есть свой описанный и стандартный синтаксис. На всё, что в него не укладывается будет ошибка парсера.
И работать с SQL надо согласованно с синтаксисом PHP - т.е. все запросы с точки зрения программиста должны с точки зрения PHP являться строками и обрабатываться функциями

Ну наконец кто-то выдвинул расжеваный ответ. Я в упор не мог понять почему выдаються ошибки.
(Добавление)
УРАААААААААААААААААААААААААААААА АААААААа
Работаем. Всем огромное спасибо. Теперь я знаю как что делать. Сам бы не догадался так изменить код. Часто систему приходилось обходить, но до этого я бы долго доходил бы. СПасибо.
12. Crazy_maker - 29 Июля, 2011 - 23:00:24 - перейти к сообщению
РАНО ОБРАДОВАЛСЯ ничерта ничего не работает просто ошибки не выдает.
Скажите есть альтернатива MySQL, в которой можно легче разобраться?
13. Мелкий - 29 Июля, 2011 - 23:25:31 - перейти к сообщению
Crazy_maker пишет:
Скажите есть альтернатива MySQL, в которой можно легче разобраться?

У всех SQL-баз однотипный интерфейс - пачка функций да SQL-запросы.

Crazy_maker пишет:
ничего не работает просто ошибки не выдает.

А дальше самое интересное - SQL не зависит от PHP чуть больше, чем никак и ошибки он выдаёт через свои пути. Для старого драйвера MySQL, в частности - функция mysql_error
14. Crazy_maker - 30 Июля, 2011 - 00:26:51 - перейти к сообщению
Довольно любопытно. Программа отказывалась работать через идентификатор соединения
$link = и т. д. если кто не понял. Стоило избавиться от него и таблицы начали наполняться. Кто может это объяснить? и чем это может обернуться?
15. DeertOff - 30 Июля, 2011 - 06:14:06 - перейти к сообщению
Не может она не работать Радость
Возможно где то ошибся

PHP:
скопировать код в буфер обмена
  1.  
  2. $hostname = 'localhost';
  3. $username = 'root';
  4. $password = '';
  5. $dbName = 'db';
  6.  
  7. $link = mysql_connect($hostname, $username, $password) or
  8. die('No connect with data base');
  9.  
  10. mysql_select_db($dbName, $link) or die('No data base');
  11.  
  12. $query="create table clients(familia char(40) NOT NULL,imia char(30) NOT NULL);";
  13. $result = mysql_query($query,$link);
  14.  
  15. if (!$result)
  16.     die(mysql_error());
  17.  
  18. mysql_close($link);
  19.  


Если не используешь больше 1 базы то отсутствие ссылки нечем не обернётся Радость

 

Powered by ExBB FM 1.0 RC1