Наоборот: это возможно только при включенном режиме эмуляции. И только с настоящими целыми значениями. http://stackoverflow.com/a/2269931/272885 Добавлено спустя 2 минуты 13 секунд: Вот из-за подобных нюансов новичек всегда будет обсираться на реальных задачах. Чуйка постепенно накапливается, её учебники не дают.
Я так понял PDO дает в итоге 2 достаточно разных интерфейса по вставке данных. Их можно смешать, и тогда в одном случае пройдет SQL-инъекция, а в другом запросы не будут исполняться. Потенциальные места для ошибок.
Вы устарели, лет на 5 Обёртка к тому же драйверу, только более новая, имеющая дополнительные/новые возможности. На любителя. Такая же обёртка, только сразу для нескольких драйверов. По моему мнению, её не стоит использовать, если не пишите некий универсальный движок, который должен работать с несколькими базами равнозначно. Т.е. если Вы планируете писать код, который будет работать только с mySQL (годами), то используйте mysqli. В любом случае, лет через 5-10 придётся переписывать - всё движется, всё развивается со временем. Добавлено спустя 6 минут 54 секунды: Хотите быть нормальным разрабом? Тогда никогда такого не говорите, не думайте и даже не мечтайте. Изучать SQL (стандарт) нужно обязательно, особенно начинающим. Писать запросы надо в "сыром" виде, особенно начинающим. Использовать всякие навороты, типа генераторов кода, только если Хозяин требует или под дулом пистолета. И вообще, не ленитесь изучать документацию - это очень, очень полезно. Её чтение исключает 99,9% вопросов. Добавлено спустя 28 минут 12 секунд: Понимание. Как минимум Вы должны знать все основные параметры основных запросов (select,insert,update,delete,create и т.п.). Как минимум, для начала нужно прочесть стандарт раза два (или столько, сколько нужно) и запомнить основные возможности SQL-языка, процентов на 50 хотя бы. Командная строка - на любителя. Давно существуют обёртки (для Вин рекомендую SQLyog, - я пользую её и под линуксом). См. выше. Стандарт, на котором основан движок, как минимум. Думаю знания процентов 50 возможностей (по стандарту) вполне достаточно для начинающего по SQL, при условии, что это основные возможности. Тонкости движка это уже уровень мидла/гуру. Мы все ленивые. Но "всё хорошо что в меру" (с) народная мудрость. Нельзя дать точный список - каждый работодатель индивидуален (почти). Список всегда будет приблизительный. Просто внимательно прочтите стандарт - в 90% случаев этого будет достаточно для начинающего. В подробностях изучайте по мере необходимости. Плюс нужна практика, чтобы "закрепить"/почувствовать прочитанное, - напишите с полсотни-сотню разных запросов. Пусть они будут простые, но разные. И они должны работать без ошибок, естественно. А вообще... Например, я до сих пор не знаю всех возможностей ПХП и всех возможностей mySQL, хотя работаю с этим уже много лет. Пару раз в неделю приходится "нырять" в доку, чтобы найти ответы. Это нормально. (Где-то писал, что тех, кто всё знает, можно по пальцам пересчитать. Остальным приходится "нырять", кому чаще, кому реже.)
Chushkin, )) спасибо) Хм.. а как транзакционная БД, например InnoDB, защищена от а) потери питания в момент записи жестким диском изменений. аа) тоже что и (а), но у жесткого диска включен write-cache, а запросов идет в него много, и они там томятся в его 64 мегабайтной очереди. б) от падения сервера БД ? (или он не падает никогда) - с точки зрения целостности транзакций?
Также, как и остальные движки. Можете хоть банковскую систему на ней делать, надёжность будет не принципиально хуже, чем у старших братьев. Ибо самое ненадёжное звено - железо. Принципиально есть два режима: - сброс данных на диск каждой транзакции по "commit' (работает со скоростью диска) - потеряются транзакции, во время которых произошёл сбой. Целостность сохраняется. - задержка сброса на N секунд (работает со скоростью файлового кеша) - потеряются данные, которые в кеше. Целостность может быть нарушена (в теории, - на практике не помню такого случая). Как-то так...
InnoDB она маркеры на транзакции пишет в оперативку или на диск? Если в оперативку то потеряется целостность. Если на диск, то интересны примерные накладные расходы на такое веселье. Я имел ввиду не файловый кэш, а дисковый (физической железки такой). Я как-то даже не уверен что его у всех дисков отключить можно. По дефолту он обычно включен в целях высоких оценок в бенчмарках. Да и без SQL-транзакций наверное не часто на практике теряется целостность
1) Без понятия, что и куда он пишет. Я "объектник" и подхожу к внешним объектам как к чёрному ящику - вход/выход. А что там внутри - по барабану. Если Вам интересна внутренняя "кухня" движка, возьмите исходники и посмотрите. 2) Да пофиг, файловый/дисковый, - оно или может скидываться или нет. Это не проблемы движка, это проблемы железа и ОС. Про два режима, о которых писал выше, описаны в доке, поэтому знаю. Естественно, для обычных HD-дисков скоростя между ними будут отличаться на пару порядков. Но и надёжность на отказ тоже, естественно. Каждый пользователь выбирает, что ему нужно. Для inet-а оптимален второй режим. Для систем, требующих высокой надёжности записи, - первый. 3). Не часто. Вообще, тут вопрос не в "частоте", а в требуемой надёжности. Например, для обычного сайта допустима потеря записей за последние несколько секунд.
Коллеги, подскажите, пожалуйста: создал я таблицу, обозначил колонку (тип - int) как первичный ключ, а вот свойство auto_increment прописать забыл. Как исправить ошибку? И еще вопрос. Создал я таблицу, сделал какую-то колонку первичным ключом и потом понял, что это был не лучший выбор. Как "забрать" у этой колонки свойство первичного ключа и как в таблицу добавить новую колонку-первичный ключ? Спасибо)
Всем привет! Пожалуйста, помогите. Хочу научиться пакетной загрузке данных с помощью оператора Load. Для этого в корне жесткого диска С создал папочку DataInsert, в которую вложил файлик с данными data.txt. После этого ввел в консоль команду LOAD DATA INFILE 'C:\DataInsert\data.txt' INTO TABLE goods; Но система выдала ошибку ERROR 29 (HY000): File 'C:\ProgramData\MySQL\MySQL Server 5.1\Data\DataInsertdata.txt' not found (Errcode: 2) Потом попробовал другую команду LOAD DATA LOCAL INFILE 'C:\DataInsert\data.txt' INTO TABLE goods; Но также получил ошибку ERROR 2 (HY000): File 'CataInsertdata.txt' not found (Errcode: 2) Подскажите, пожалуйста, что не так?