Тема: Mysql
Доброго дня! Скажіть будь ласка, чи правильною буде конструкція?
mysql_query(......) OR mysql_query(......);
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → PHP → Mysql
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Доброго дня! Скажіть будь ласка, чи правильною буде конструкція?
mysql_query(......) OR mysql_query(......);
Так.
Звісно, вона, можливо, буде робити зовсім не те, що ви хотіли, але з точки зору синтаксису - жодних проблем тут нема.
Взагалі-то якщо у вас база не відвалюється і сам SQL правильний, що воно завжди мало би бути тру.
У кожного своє розуміння фрази "правильний". Для мене ця конструкція не правильна!
У кожного своє розуміння фрази "правильний". Для мене ця конструкція не правильна!
Навіть у варіантах
mysql_query('UPDATE ...') OR mysql_query('INSERT ... INTO `log_table`');
чи
mysql_query('...', $old_server) OR mysql_query('...', $new_server);
?
Ну інтерпритатор не матюкнеться, значить правильна?
Хоча, стоп, в php нема оператора OR.
Значить не правильна конструкція
Як це немає оператора or???
Koala особисто для мене такі варіанти незручні)
Ось, я написав такий код:
CREATE TABLE IF NOT EXISTS `users_online` (
`users_online-id` int(11) NOT NULL AUTO_INCREMENT,
`users_online-identif` varchar(200) NOT NULL,
`users_online-ip` varchar(50) NOT NULL,
`users_online-guest` int(1) NOT NULL,
`users_online-user` int(11) NOT NULL,
`users_online-browser` varchar(200) NOT NULL,
`users_online-date` datetime NOT NULL,
`users_online-url` varchar(200) NOT NULL,
`users_online-href` varchar(200) NOT NULL,
`users_online-ref` varchar(200) NOT NULL,
PRIMARY KEY (`users_online-id`),
UNIQUE KEY `users_online-identif` (`users_online-identif`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
і код:
$mysql->query("
INSERT INTO `users_online` (
`users_online-id`,
`users_online-identif`,
`users_online-ip`,
`users_online-user`,
`users_online-browser`,
`users_online-date`,
`users_online-url`,
`users_online-href`,
`users_online-ref`
) VALUES (
NULL,
'".func_getIP()."_".$session."'
'".func_getIP()."',
'".$GLOBAL_user['users_id']."',
'".$agent."',
NOW(),
'".$GLOBAL_online_save."',
'".$_SERVER['REQUEST_URI']."',
'".$_SERVER['HTTP_REFERER']."'
)
ON DUPLICATE KEY
UPDATE `users_online-user` = '".$GLOBAL_user['users_id']."',`users_online-date` = NOW(),`users_online-url` = '".$_SERVER['REQUEST_URI']."';
");
а тут помилка: Column count doesn't match value count at row
Як це немає оператора or???
Koala особисто для мене такі варіанти незручні)
То була пятниця і я щось глючив. Завжи користуюсь || тому забув за синоніми.
Як це немає оператора or???
Koala особисто для мене такі варіанти незручні)
Незручні - так. Але чи неправильні?
Незручні - так. Але чи неправильні?
Ну з точки зору синтаксису все ок, але якби ми всі користувались принципом:
- компілятор не видає помилок значить код норм - було б відстій (моя думка)
В даному випадку не прикольно читати і шукати значки || якщо запит буде великий (розростеться на багато рядків)
В загалі кожному своє але я не рекомендую так робити.
Робити таким чином - не дуже добра ідея.
По-перше, mysql_query поверне false у разі будь-якої помилки. А це може призвести до випадків, коли перша операція не була успішною за незапланованих причин, тому я б все одно знайшов інший метод зробити такий вибір.
По-друге, коли я бачу mysql_* у 2015 році - хочеться ридати вголос.
Підскажіть помилку, неможу видалити з бази вибрані за допомогою селект рядки:
Дякую
ПЕРЕНЕСЕНО : http://replace.org.ua/topic/4418/
andrzej прочитайте правила форумі, оформіть нову тему, візьміть код у тег code для того що б всім нам було зручно його читати
Напишіть у чому проблема і як ви старались її вирішити, які помилки видає система
і дальше ми вам залюбки допоможемо
p.s. Даю вам трохи часу виправити своє повідомлення і перенести його у нову тему, так як ваше повідомлення не стосується даної теми
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися