Приветствую Вас. У меня два вопроса. 1) Защитит ли следующий код от иньекций в полной мере? Не нужно ли использовать mysqli_real_escape_string? Код (Text): $link = mysqli_connect("localhost", "root", "", "like"); $query = mysqli_prepare($link, "SELECT * FROM users WHERE token=?;"); mysqli_stmt_bind_param($query, "s", $_GET["id"]); mysqli_stmt_execute($query); $result = mysqli_stmt_get_result($query); while ($row = mysqli_fetch_assoc($result)) $res[] = $row; print_r($res); И вопрос по типам функции mysqli_stmt_bind_param: i-integer d-double s-string b-подскажите? Есть ли еще типы? Где можно отловить то, что валидация не прошла, или запрос проходит в любом случае? ($row==NULL)? 2) MYSQL слишком ли вредно для производительности то, что для каждого нового запроса, создается отдельное подключение, или стоит использовать одно? Спасибо.
дополнительный escape не нужен типы описаны в документации , например здесь зачем тебе новое подключение? думаю где-то в пределах от "очень плохо" до "чудовищно плохо"
Но причем тут много подключений и запросы? Задайте себе вопрос для чего делается подключение и получите ответ.
Если вам так интересно, то я редактирую скрипт, в котором для каждого нового запроса создается отдельное подключение, и после обработки данных оно закрывается. И я в связи с этим спрашивал, это сильно влияет на производительность или нет? Нужно ли сделать так, чтобы все запросы выполнялись в одном подключении или это не так важно. Подключение делается для того, чтобы инициализировать (установить) соединение с базой данных, в рамках одного подключения можно выполнять несколько запросов.
Соединения делаются для того, чтобы установить связь с базой данных и к ней выполнять запросы. Зачем делать много соединения к одной базе данных при каждом запросе я не понимаю.
На аяксе количество запросов равно количеству соединений и никто не париться. Слабый блейд - купи мощнее. Не хватает мощности - добавиь. Чоткие поцаны имеют такого рода дейтацентры http://www.wired.com/wiredenterprise/wp-content/uploads//20 ... _large.jpg Добавлено спустя 3 минуты 5 секунд: Измерения проводили, или на глаз определили - чота производительности не хватает. Сделайте из разрозненных функций класс в котором mysqli будет держать соединение пока скрипт не умрет. Добавлено спустя 3 минуты 8 секунд: Насколько я понимаю "соединение" это указатель в неком файле или в памяти на некий файл или место в памяти компа. Или на самом деле мужики тащут проволоку от mysqli_connect до database? Добавлено спустя 2 минуты 35 секунд: О впрыске забыл. Не злите окружающих и не придется испытывать на себе всю эту тряхомудию.
Зачем изыскивать способы, если и без рытья все работает? "We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up ..." (c) сами знаете кто
Много соединений=много баз. 1 соединение=много запросов. Бред: 1 соединение=1 запрос. 2 соединение=1 запрос.
так таки и никто? взрывной рост нагрузки приводит к изобретению кеша или к смене концепции. иначе п-ц неизбежен, ящитаю.