PHP и SQL INSERT INTO с переменными не работает

Кто-нибудь знает, что не так в этом коде?

$sql = "INSERT INTO quiz.fr_fragen (fr_id, fr_frage, a1, a2, a3, a4, fr_kategorie) 
VALUES ('$id', '$frage', '$a1', '$a2', '$a3', '$a4', '$kat');";

Имена таблиц на 100% правильные. Переменные выглядят так:

$id = 2002

$kat = 2

$frage = 1+1=

$a1 = 2

$a2 = 3

$a3 = 4

$a4 = 5

Ранее я создал массив из файла CSV. Переменные заполнены правильно, я дважды проверил это.

3 ответа

Решение

Оо...

использование sprintf() по состоянию на:

$sql = sprintf("INSERT INTO quiz.fr_fragen (fr_id, fr_frage, a1, a2, a3, a4, fr_kategorie) VALUES ('%d', '%s', '%s', '%s', '%s' , '%s', '%s')", $id,  $frage, $a1, $a2, $a3, $a4, $kat);

Я рекомендую узнать об этой функции, а также о санации данных.

Также между "" Theres обозначение "{$variable1} and {$variable2}", более надежный тан без скобок.

Вы, вероятно, буквально вставляете $id в вашем столе. Какой MySQL возвращает ошибку, потому что это должно быть допустимое целое число.

Вы должны посмотреть на подготовленные заявления.

$stmt = $conn->prepare("INSERT INTO quiz.fr_fragen (fr_id, fr_frage, a1, a2, a3, a4, fr_kategorie) VALUES (?, ?, ?, ?, ?, ?, ?)"); $stmt->bind_param($id, $frage, $a1, $a2, $a3, $a4, $kat);

Или вы также можете согласиться с этим, но это НЕ лучшая практика.

$sql = "INSERT INTO quiz.fr_fragen (fr_id, fr_frage, a1, a2, a3, a4, fr_kategorie) VALUES (" . $id . ", " . $frage . ", " . $a1 . ", " . $a2 . ", " . $a3 . ", ". $a4 . ", " . $kat . ");";

Пожалуйста, проверьте мой код

После этого, если вы столкнулись с какой-либо проблемой, следуйте ссылкам удара

1. php_mysql

2. mysql_query ()

<?php
$sub = 101;
$mark = 85+5;

$host = 'localhost';
$db_user = 'root';
$db_password = '';
$db = 'quiz';

$con = mysql_connect($host,$db_user,$db_password);

if($con){
    if(!mysql_select_db($db)){
        echo "Database not found <br/>";
        die;
    }
}else{
    echo "DB Connect failed";
    die;
}

$sql = "INSERT INTO fr_fragen (sub, mark) VALUES ('$sub','$mark')";

echo $sql . '<br/>';

if(mysql_query($sql)){
    echo "Data insert successfully";
}else{
    echo "Error: " . mysql_error();
}

?>
Другие вопросы по тегам