Задавайте вопросы, мы ответим
Вы не зашли.
Доброго времени суток!
такая проблемка. Есть файл проверки данных и вставки в таблицу MySQL. при тестировании на локалке в Linux работает, а в Win - нет.
Вот код
$sql_host="localhost"; $sql_id="root"; $sql_pass="mypass"; $sql_db="mydb"; //Коннект с базой $link = @mysql_connect ("$sql_host", "$sql_id", "$sql_pass") or die ("Нема конекта"); $link2 = @mysql_select_db("$sql_db") or die ("aaa"); @mysql_query("SET CHARACTER SET cp1251;"); @mysql_query("SET collation_connection = 'cp1251_general_ci';"); //Запрос на выборку юзера $query = "SELECT `name`,`mail` FROM `users` WHERE `name`='$fio' AND `mail`='$mail';"; $sort=@mysql_query($query); $row = @mysql_result($sort); if ($row == 0){ @mysql_query("INSERT INTO `users` SET `name`='$fio', `mail`='$mail';"); header ("Location:start.php"); }
Думаю проблемка в php.ini или в конфиге апача... Кто знает?
И там и там стоит второй Апач, пятый MySQL и пятый PHP
Отредактированно loop69 (05.12.2007 09:27:52)
Неактивен
Какая ошибка возникает?
Неактивен
Ошибок не возникает, в том то и дело... Просто тупо не записывает в базу и все
Неактивен
Почему бы не исправить скрипт, чтобы ошиюки возникали:
$sort=@mysql_query($query) or die(mysql_error());
@mysql_query("INSERT INTO `users` SET `name`='$fio', `mail`='$mail';") or die(mysql_error());
Неактивен
Notice: Undefined index: mod1_1 in C:\sites\localhost\www\tsc2\religion\rez1.php on line 101
Кажется не воспринимает передачу переменных $_POST
$mod1_1 = $_POST['mod1_1'];
Но это уже не MySQL, а php...
Отредактированно loop69 (05.12.2007 12:24:57)
Неактивен
Вобщем, MySQL под Windows оказывается более привередливой СУБД, чем под Линухом... Нужно было в поля INT вставить значение по умолчанию "0", а то ни в какую не желала работать с таблицей...
У, ты какая!
Неактивен
В Windows мастер настраивает сервер по-умолчанию на SQL_MODE=STRICT,
поэтому у Вас возникают проблемы с переносимостью.
Неактивен
ну вот, опять вы что-то непонятное сказали И как это поправить?
Неактивен
Режим SQL - это то, как сервер БД ведет себя в случае, когда он встречает некорректные данные: например, в числовой столбец пытаются вставить строку, величина не влезает в диапазон столбца и др., как это, по-видимому, происходило в вашем случае.
Чтобы узнать. в каком режиме работает сервер, можно в консоли mysql выполнить запрос
SELECT @@global.sql_mode;
Если нужно максимально смягчить режим (чтобы не мешались всякие непредвиденные и непонятные ошибки), то в клиенте (под клиентом понимается любое приложение, соединяющееся с сервером (в т.ч. apache), а не только консоль mysql) следует выполнить запрос
SET @@session.sql_mode = '';
Неактивен
Можно в конфигурационный файл my.cnf написать sql_mode=''
Неактивен