写入数据库失败

时间:2016-06-13 14:14:57

标签: php mysql sql

我的SQL查询有些奇怪的问题。我使用wamp3与PHP 7.0.7和MySQL 5.7.11。

当我填写一个自制的表格,并将其发送到另一个验证它的脚本时,我什么也得不回来!有什么不对劲,但我没有收到任何错误消息! MySQL没问题,它不会出错!当我将下面的查询包含在PHPMyAdmin中时,变量以字符串和整数变化,当然,它运行良好!只有下面的查询,在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";
}

有人有任何解决方案吗?

2 个答案:

答案 0 :(得分: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";
}

但它不是一个足够的解决方案。如果你的一个字符串有引号就会失败。

为了更好的解决方案,请使用PHP中的红外语句

请查看此文件

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

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

答案 1 :(得分:-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";
}

我现在已经将其作为一个字符串进行了翻译,也许你有一些整数值也可以没有引号