2016-06-13 3 views
1

У меня возникли странные проблемы с моим SQL-запросом. Я использую wamp3 с PHP 7.0.7 и MySQL 5.7.11.Ошибка записи в базу данных

Когда я заполняю самодельную форму и отправляю ее на другой скрипт, который проверяет ее, я ничего не получаю! Там что-то не так, но я не получаю сообщение об ошибке! MySQL в порядке, это не дает ошибки! Когда я включаю запрос ниже в PHPMyAdmin, переменные, измененные в строках и ints, конечно, тогда это работает хорошо! Только запрос ниже, в PHP-коде не удается! Я не знаю, что произойдет.

Я связался с другом и голландским форумом, но они не знают, что такое ответ! код я использую:

$sqlquery = " 
    INSERT INTO 
     klanten 
      (
       naam, tussenv, achternaam, gebdat, 
       blindziend, email, wachtwoord, adres, 
       busnr, postcode, postcodenlletters, woonplaats, 
       land, ontvfact, eigenOpm 
      ) 
     VALUES 
      (
       $vnaam, $tussenv, $anaam, $gebdat, 
       $blindziend, $mail, $passw1, $adres, 
       $bus, $postcode, $postcnll, $city, 
       $country, $ontvfact, $eigenopm 
      ) 
"; 

if(mysqli_query($sqlconnect, $sqlquery)) { 
    echo "Alles is succesvol toegevoegd in onze database. U zal ongenblikkelijk 
     terugkeren naar <a href='http://www.dikowork.com'>www.dikowork.com</a>. 
     Bedankt voor uw inschrijving"; 
} 

ли кто-нибудь есть какие-либо решения?

+8

1. Ваш запрос не будет, если у вас есть какое-либо значение строки вставляется (они нужны для цитирования). 2. Ваш запрос не удастся, если в ваших строках есть кавычки. 3. Пожалуйста, используйте подготовленные заявления. – Siyual

+1

Вы должны добавить одиночные строковые значения qoutes arround. Лучше вы узнаете о подготовленных заявлениях – Jens

+3

@nospor Пожалуйста, не редактируйте сообщение, чтобы сделать его неправильным! Есть ли у кого-нибудь какие-либо решения, верно ли, кто-то неверен? – Styphon

ответ

0

Вы должны цитировал все пример строк, как $ vnaam в '$ vnaam'

$sqlquery = "INSERT INTO klanten 
    (naam, tussenv, achternaam, gebdat, blindziend, email, wachtwoord, adres, 
    busnr, postcode, postcodenlletters, woonplaats, land, ontvfact, eigenOpm) 
    VALUES ('$vnaam', '$tussenv', '$anaam', '$gebdat', '$blindziend', '$mail', '$passw1', 
    '$adres', '$bus', '$postcode', '$postcnll', '$city', '$country', '$ontvfact', '$eigenopm')"; 
if(mysqli_query($sqlconnect, $sqlquery)) 
{ 
    echo "Alles is succesvol toegevoegd in onze database. U zal ongenblikkelijk 
    terugkeren naar <a href='http://www.dikowork.com'>www.dikowork.com</a>. 
    Bedankt voor uw inschrijving"; 
} 

Но сво не достаточно решений. Если одна из ваших строк имеет цитату, она не сработает.

Для лучшего решения используют Preperared заявления в PHP

Пожалуйста, посмотрите на этих документах

http://php.net/manual/en/pdo.prepared-statements.php

http://www.w3schools.com/php/php_mysql_prepared_statements.asp

-1

Там, наверное, дело в кавычках происходит здесь. Лучше всего использовать prepared statements, используя это, вам не о чем беспокоиться.

$sqlquery = "INSERT INTO `klanten` 
    (`naam`, `tussenv`, `achternaam`, `gebdat`, `blindziend`, `email`, `wachtwoord`, `adres`, 
    `busnr`, `postcode`, `postcodenlletters`, `woonplaats`, `land`, `ontvfact`, `eigenOpm`) 
    VALUES ("'.$vnaam.'", "'.$tussenv.'", "'.$anaam.'", "'.$gebdat.'", "'.$blindziend.'", "'.$mail.'", "'.$passw1.'", 
    "'.$adres.'", "'.$bus.'", "'.$postcode.'", "'.$postcnll.'", "'.$city.'", "'.$country.'", "'.$ontvfact.'", "'.$eigenopm.'")"; 
if(mysqli_query($sqlconnect, $sqlquery)) 
{ 
    echo "Alles is succesvol toegevoegd in onze database. U zal ongenblikkelijk 
    terugkeren naar <a href='http://www.dikowork.com'>www.dikowork.com</a>. 
    Bedankt voor uw inschrijving"; 
} 

Я intrepreted Everthing как строка прямо сейчас, может быть, у вас есть некоторые целочисленные значения, слишком это могут быть без кавычек

+0

Преобразование в конкатенацию является странным и необязательным. Он просто вводит тонну визуального мусора. – tadman

Смежные вопросы