2016-06-13 16 views
1

SQLクエリに奇妙な問題があります。私はPHP 7.0.7とMySQL 5.7.11でwamp3を使用します。データベースへの書き込みに失敗しました

自分で作成したフォームに記入し、それを検証する別のスクリプトに送信すると、何も戻ってこない!何か間違っていますが、エラーメッセージは表示されません。 MySQLは大丈夫です、それはエラーを起こさない! PHPMyAdminに以下のクエリを含めると、変数は文字列とintで変更されました。もちろん、うまくいきます!以下のクエリだけがPHPコードで失敗します!私は何が起こるのか分からない。

私は友人とオランダのフォーラムに連絡しましたが、その2人は答えがわかりません! 私が使用するコードは次のとおりです。

$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文字列値を追加する必要があります。準備が整った文についてもっとよく学んでください – Jens

+3

@nospor投稿を編集して間違ったものにしないでください!誰にも解決策はありますか?誰かが正しい英語ではありませんか? – Styphon

答えて

0

あなたは '$の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"; 
} 

しかし、その足りないソリューションへの$ vnaamなどのすべての文字列の例を引用しなければなりません。あなたの文字列の1つに引用符がある場合、それは失敗します。よりよい解決策を

はPHP

にPreperaredステートメントを使用してここに行く引用符のあるものはおそらくあります。この文書で

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

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

-1

をご覧ください。 最も良いことは、prepared statementsを使用してこれを使用することです。何かを心配する必要はありません。私は今文字列としてeverthingをintrepretedまし

$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"; 
} 

は、多分あなたはあまりにもそれらを使用すると、挿入されている任意の文字列値を持っている場合あなたのクエリが失敗します引用符

+0

連結への変換は奇妙であり、必要ではありません。それはちょうど1トンの視覚的な迷惑を導入します。 – tadman

関連する問題