Имеется такая функция:
function to_db($_array)
{
mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWDORD) or die(mysql_error());
mysql_query(MYSQL_CHARSET);
mysql_select_db(DB_NAME) or die(mysql_error());
$array = array_map("mysql_real_escape_string",$_array);
mysql_query("INSERT INTO `".DB_NAME."`.`".TABLE_NAME."` (`id` , `name` ,`adres` , `slovo` ) VALUES (NULL ,'".$array['name']."', '".$array['adres']."', '".$array['slovo']."' )") Or die(mysql_error());
mysql_close();
}
Проблема кроется в строке
$array = array_map("mysql_real_escape_string",$_array);
Ну нехочет с этой строкой записывать данные в базу. Если обвернуть каждый элемент массива прямо в запросе:
Вот так
mysql_query("INSERT INTO `".DB_NAME."`.`".TABLE_NAME."` (`id` , `name` ,`adres` , `slovo` ) VALUES (NULL ,'".mysql_real_escape_string($array['name'])."', '".mysql_real_escape_string($array['adres'])."', '".mysql_real_escape_string($array['slovo'])."' )") Or die(mysql_error());
mysql_close();
То все отлично работает.
Дело в том что в массиве не 3 элемента (как в примере) а 30! и каждый элемент обворачивать в mysql_real_escape_string ну как то не красиво.