Согласно http://us2.php.net/manual/en/mysqli-stmt.bind-param.php , различные типы: i corresponding variable has type integer d corresponding variable has type double s corresponding variable has type string b corresponding variable is a blob and will be sent in packets Однако как вы справитесь с этим: ->prepare("SELECT blabla FROM foo WHERE id IN (?)") Где ? будет список идентификаторов. Может […]
Не знаю, почему я получаю это сообщение для предупреждения PHP. По-видимому, в подготовленном операторе есть четыре параметра, а также четыре переменные в bind_param (). Спасибо за любую помощь! if($stmt = $mysqli -> prepare("SELECT url, month, year, cover_image FROM back_issues ORDER BY year DESC, month DESC")) { $stmt -> bind_param("ssis", $url, $month, $year, $cover_image); $stmt -> […]
Я должен выбрать некоторые строки из базы данных с помощью оператора IN . Я хочу сделать это, используя подготовленный оператор. Это мой код: <?php $lastnames = array('braun', 'piorkowski', 'mason', 'nash'); $in_statement = '"' . implode('", "', $lastnames) . '"'; //"braun", "piorkowski", "mason", "nash" $data_res = $_DB->prepare('SELECT `id`, `name`, `age` FROM `users` WHERE `lastname` IN (?)'); […]
Исторически я всегда использовал mysql_real_escape_string() для всех входных данных, полученных от пользователей, которые заканчиваются касанием базы данных. Теперь, когда я полностью перешел на MySQLi, и я использую подготовленные запросы со связанными параметрами, эффективно ли я удалил атаки SQL-инъекций? Правильно ли я говорю, что мне больше не нужно mysql_real_escape_string()? Это мое понимание и основа моего проекта: […]
Я пытаюсь связать переменную в этом подготовленном заявлении, но я продолжаю получать ошибку: Call to a member function bind_param() on a non-object Вызывается функция, и переменные передаются ей. Когда я изменяю функцию, чтобы просто откликнуться на переменную, переменная печатает на странице в порядке, но если я попытаюсь связать ее здесь, я получаю сообщение об ошибке. […]
Я пытаюсь написать функцию PHP. Это очень просто. Это просто подготовленный оператор, который запрашивает базу данных, но я не могу заставить это работать. Я продолжаю получать сообщение об ошибке для вызова функции-члена () для не-объекта. вот код: $DBH = new mysqli("host", "test", "123456", "dbname"); function selectInfo($limit, $offset){ $stmt = $DBH->prepare("SELECT * FROM information LIMIT ?,?"); […]
Я пытаюсь сделать следующий код, но я не могу достичь строки execute() . $mysqli = $this->ConnectLowPrivileges(); echo 'Connected<br>'; $stmt = $mysqli->prepare("SELECT `name`, `lastname` FROM `tblStudents` WHERE `idStudent`=?"); echo 'Prepared and binding parameters<br>'; $stmt->bind_param('i', 2 ); echo 'Ready to execute<br>' if ($stmt->execute()){ echo 'Executing..'; } } else { echo 'Error executing!'; } mysqli_close($mysqli); Результат, который я […]
Привет, я пытаюсь изучить правильный способ использования подготовленных инструкций, чтобы избежать инъекций SQL и т. Д. Когда я выполняю скрипт, я получаю сообщение от моего скрипта, говорящего «0 Rows Inserted», я ожидаю, что это скажет 1 Rows Inserted и, конечно же, обновит таблицу. Я не совсем уверен в своем подготовленном заявлении, поскольку я провел некоторое […]
Я полностью смущен mySQLi. Хотя я использую процедурные вызовы mysql в течение многих лет, я хочу привыкнуть к подготовке подготовленных инструкций для защиты от db security / mySQL, которую он предлагает. Я пытаюсь написать простой оператор select (да, я знаю, что процедура процедурного вызова для этого предлагает повышение производительности). Когда я запускаю, я получаю все […]
У меня есть функция, которая генерирует подготовленный оператор INSERT на основе ассоциативного массива имен столбцов и значений, которые должны быть вставлены в этот столбец, и имя таблицы (простая строка): function insert ($param, $table) { $sqlString = "INSERT INTO $table (".implode(', ',array_keys($param)).') VALUES ('.str_repeat('?, ', (count($param) – 1)).'?)'; if ($statement = $this->conn->prepare($sqlString)): $parameters = array_merge(array($this->bindParams($param), $param)); […]