Zvepr » 26 фев 2005, 21:44
собственно говоря, это не баги никакие, это просто так и забумано. надо понимать что в скобочках пишется! ))
сначала в PHP: \ - там спец.симов, типа для \n \t \r и прочего. чтобы это не было спец символом, а просто печаталась \, надо написать \\
т.е. echo "\\"; будет \
что касается mysql: пишем запрос, чтоб поступал вот так
в mysql: UPDATE field="bla-bla-bla"
следовательно в php будет так: " UPDATE field=\"bla-bla-bla\" " (с использованием спец симовлов, потому что если в запросе вместо \" написать просто " то php воспримет их как открывающие-закрывающие скобки --> ошибка)
тепрь когда у нас в тексте содержаться кавычки:
текст: камон, "биг-блэк-брозерс", камон!
в mysql тогда должно поступить так: UPDATE field="камон, \"биг-блэк-брозерс\", камон!" (тож спец символы и БД, аналогично, что и в предыдущем примере)
и наконец в PHP, поднатужимся, вспомним все что выше получится:
mysql_query(" UPDATE field=\"камон, \\\"биг-блэк-брозерс\\\", камон!\" ") (в запросе все " заменили на \", а \ на \\)...
воть! и никаких глюков! а как уже заменять и прочее - это дело техники, главное все писать в кавычках. И никаких проблем с & < > я не встречал. но вообще, можно воспользоваться для такого htmlspecialchars()... и для пущей уверрености, сами запросы писать только с " и \", а в тексте заменять все " на ' str_replace-ом...
можно провести анолгоию для ', заменив выше все " на '
что касается ' - то никаких баг при вот таком не бывало у меня:
mysql_query(" UPDATE field=\"камон, \\\"биг-блэк-брозерс\\\", ' ' ' ' ' камон!\" ")
собственно говоря, это не баги никакие, это просто так и забумано. надо понимать что в скобочках пишется! ))
сначала в PHP: \ - там спец.симов, типа для \n \t \r и прочего. чтобы это не было спец символом, а просто печаталась \, надо написать \\
т.е. echo "\\"; будет \
что касается mysql: пишем запрос, чтоб поступал вот так
в mysql: UPDATE field="bla-bla-bla"
следовательно в php будет так: " UPDATE field=\"bla-bla-bla\" " (с использованием спец симовлов, потому что если в запросе вместо \" написать просто " то php воспримет их как открывающие-закрывающие скобки --> ошибка)
тепрь когда у нас в тексте содержаться кавычки:
текст: камон, "биг-блэк-брозерс", камон!
в mysql тогда должно поступить так: UPDATE field="камон, \"биг-блэк-брозерс\", камон!" (тож спец символы и БД, аналогично, что и в предыдущем примере)
и наконец в PHP, поднатужимся, вспомним все что выше получится:
mysql_query(" UPDATE field=\"камон, \\\"биг-блэк-брозерс\\\", камон!\" ") (в запросе все " заменили на \", а \ на \\)...
воть! и никаких глюков! а как уже заменять и прочее - это дело техники, главное все писать в кавычках. И никаких проблем с & < > я не встречал. но вообще, можно воспользоваться для такого htmlspecialchars()... и для пущей уверрености, сами запросы писать только с " и \", а в тексте заменять все " на ' str_replace-ом...
можно провести анолгоию для ', заменив выше все " на '
что касается ' - то никаких баг при вот таком не бывало у меня:
mysql_query(" UPDATE field=\"камон, \\\"биг-блэк-брозерс\\\", ' ' ' ' ' камон!\" ")