Как использовать mysqli_num_rows здесь?
У меня есть следующий запрос, и я могу заставить его вставить в базу данных только в том случае, если я не использую mysqli_num_rows($stmt); по какой-то причине, когда я использую его, он говорит что-то о булевой ошибке, но мой запрос выглядит правильным:
<pre><?php include_once 'includes/dbh.php'; include_once 'header.php'; $sql = "SELECT * FROM users WHERE user_uid = ?;"; $stmt = mysqli_stmt_init($conn); if (!mysqli_stmt_prepare($stmt, $sql)) { echo 'SQL statement failed'; } else { //Bind parameters to the placeholder mysqli_stmt_bind_param($stmt, "s", $_SESSION['u_uid']); //Run parameters inside database mysqli_stmt_execute($stmt); $result = mysqli_stmt_get_result($stmt); $row = mysqli_fetch_assoc($result); if ($row['admin'] == 0) { header("Location: header.php?add=notadmin"); exit; } else { if (isset($_POST['submit'])) { $question_number = $_POST['question_number']; $question_text = $_POST['question_text']; $correct_choice = $_POST['correct_choice']; //Choices array $choices = array(); $choices[1] = $_POST['choice1']; $choices[2] = $_POST['choice2']; $choices[3] = $_POST['choice3']; $choices[4] = $_POST['choice4']; $sql2 = "INSERT INTO questions (question_number, `text`) VALUES (?,?);"; $stmt = mysqli_stmt_init($conn); //Prepare the prepared statement if (!mysqli_stmt_prepare($stmt, $sql2)) { echo 'SQL statement failed'; } else { mysqli_stmt_bind_param($stmt, "is", $question_number, $question_text); $result = mysqli_stmt_execute($stmt); // $result2 = mysqli_stmt_get_result($stmt); // $resultCheck2 = mysqli_num_rows($result2); if ($result) { foreach($choices as $choice => $value) { if ($value != '') { if ($correct_choice == $choice) { $is_correct = 1; } else { $is_correct = 0; } $sql3 = "INSERT INTO choices (question_number, is_correct, `text`) VALUES (?,?,?);"; $stmt = mysqli_stmt_init($conn); //Prepare the prepared statement if (!mysqli_stmt_prepare($stmt, $sql3)) { echo 'SQL statement failed'; } else { mysqli_stmt_bind_param($stmt, "iis", $question_number, $is_correct, $value); mysqli_stmt_execute($stmt); } } } } else { echo "There are no results"; } } } } }
Что я уже пробовал:
Я попытался использовать mysqli_num_rows, чтобы увидеть, возвращает ли он какую-либо строку в базе данных, но по какой-то причине он просто не может вставить ее в базу данных.... Мне просто интересно... можете ли вы использовать num_rows, если у вас нет автоматического приращения в базе данных?
piano0011
Я надеюсь, что вошел в правильное место, так как здесь мне нужно больше разъяснений.. Я попытался использовать mysqli_stmt_affected_rows следующим образом:
$sql2 = "вставить в вопросы (question_number, `text`) значения (?,?);";
$stmt = mysqli_stmt_init($conn);
//Подготовьте подготовленное заявление
if (!mysqli_stmt_prepare($stmt, $sql2)) {
echo 'SQL statement failed';
} еще {
mysqli_stmt_bind_param($полу, "это", $question_number, $question_text);
mysqli_stmt_execute($полу);
$результат2 = mysqli_stmt_get_result($полу);
resultCheck2 $ = mysqli_stmt_affected_rows($результат2);
if ($resultCheck2 < 1) {
заголовок("Location: header.php?add=error");
выход();
но все равно получаю ту же ошибку: