В этой новой системе, которую я сейчас пишу (изучая PHP), я пытался использовать подготовленные операторы, но не смог найти пример, который позволил мне заставить этот кусок кода работать. Проведя некоторое значительное время на это, я написал его без подготовленных заявлений (иначе я все равно застрял бы).Пример подготовленных заявлений
Однако, если бы кто-нибудь был достаточно любезен, чтобы рассказать мне о том, как я достиг бы той же функциональности, используя подготовленные заявления, это было бы здорово. Я использую подготовленные заявления для INSERT
s и UPDATE
, но не удалось заставить их работать, используя SELECT
.
Этот фрагмент кода является страницей AJAX для заполнения раскрывающегося списка на основе выбора на странице.
Вот код:
<?php
require_once('assets/includes/config.php');
if ((!isset($_GET['cat']) || !is_numeric($_GET['cat'])) && (!isset($_GET['subcat']) || !is_numeric($_GET['subcat'])))
$response = array('success' => FALSE);
else {
$conn = mysqli_connect($config["db"]["host"],$config["db"]["dbname"],$config["db"]["password"],$config["db"]["username"]);
$cat= mysqli_real_escape_string($conn, $_GET['cat']);
$subcat= mysqli_real_escape_string($conn, $_GET['subcat']);
$sql = "SELECT * FROM jf_data WHERE cat = $cat and subcat = $subcat;";
$result = mysqli_query($conn,$sql);
$options = "";
while($row = mysqli_fetch_array($result)) {
$options .= '<option value="'. $row['id'] .'">'. $row['data'].'</option>';
}
$response = array(
'success' => TRUE,
'options' => $options
);
}
header('Content-Type: application/json');
echo json_encode($response);
?>
Спасибо. Определенно не означает. Полезные вопросы (и ответы). Пример будет полезен для повторного использования позже. – Graeme
Хотя я получаю это: Warning: mysqli_stmt_prepare() ожидает, что параметр 1 будет mysqli_stmt, объект указан в xxx в строке 15 - это строка «if ($ stmt» – Graeme
@Graeme - извините, этого не заметили раньше , ваш оператор 'mysqli_connect()' вышел из строя. Он должен пойти 'mysqli_connect ($ host, $ user, $ password, $ database);' я обновил свой ответ с правильным порядком и ссылку на документацию с примерной настройкой. – PlantTheIdea