PHP MySQL数据库记录更新错误与内爆值

时间:2016-09-23 06:56:41

标签: php html mysql html5

好的,我知道有一个很大的问题清单要求提供类似主题,但没有一个帮助我。所以我在下面用自己的话来编译问题。

假设我有一个庞大的国家/地区复选框列表,如下所示:

<tr>
                <th class="left-align">Target Country</th>
                <td class="left-align">
                  <div class="widget-content" style="overflow:auto; height:100px; background:#FFFFFF;border: 1px solid #ddd;border-radius: 3px;">
                    <input type="checkbox" name="country[]" value="Afghanistan" class="checkall2" checked />
                    Afghanistan<br />
                    <input type="checkbox" name="country[]" value="Aland Islands" class="checkall2" checked />
                    Aland Islands<br />
                    <input type="checkbox" name="country[]" value="Albania" class="checkall2" checked />
                    Albania<br />
                    <input type="checkbox" name="country[]" value="Algeria" class="checkall2" checked />
                    Algeria<br />
                    <input type="checkbox" name="country[]" value="American Samoa" class="checkall2" checked />
                    American Samoa<br />
                    <input type="checkbox" name="country[]" value="Andorra" class="checkall2" checked />
                    Andorra<br />
                    <input type="checkbox" name="country[]" value="Angola" class="checkall2" checked />
                    Angola<br />
                    <input type="checkbox" name="country[]" value="Anguilla" class="checkall2" checked />
                    Anguilla<br />
                    <input type="checkbox" name="country[]" value="Antarctica" class="checkall2" checked />
                    Antarctica<br />
                    <input type="checkbox" name="country[]" value="Antigua and Barbuda" class="checkall2" checked />
                    Antigua and Barbuda<br />
                    <input type="checkbox" name="country[]" value="Argentina" class="checkall2" checked />
                    Argentina<br />
                    <input type="checkbox" name="country[]" value="Armenia" class="checkall2" checked />
                    Armenia<br />
                    <input type="checkbox" name="country[]" value="Aruba" class="checkall2" checked />
                    Aruba<br />
                    <input type="checkbox" name="country[]" value="Asia-Pacific" class="checkall2" checked />
                    Asia-Pacific<br />
                    <input type="checkbox" name="country[]" value="Australia" class="checkall2" checked />
                    Australia<br />
                    <input type="checkbox" name="country[]" value="Austria" class="checkall2" checked />
                    Austria<br />
                    <input type="checkbox" name="country[]" value="Azerbaijan" class="checkall2" checked />
                    Azerbaijan<br />
                    <input type="checkbox" name="country[]" value="Bahamas" class="checkall2" checked />
                    Bahamas<br />
                    <input type="checkbox" name="country[]" value="Bahrain" class="checkall2" checked />
                    Bahrain<br />
                    <input type="checkbox" name="country[]" value="Bangladesh" class="checkall2" checked />
                    Bangladesh<br />
                    <input type="checkbox" name="country[]" value="Barbados" class="checkall2" checked />
                    Barbados<br />
                    <input type="checkbox" name="country[]" value="Belarus" class="checkall2" checked />
                    Belarus<br />
                    <input type="checkbox" name="country[]" value="Belgium" class="checkall2" checked />
                    Belgium<br />
                    <input type="checkbox" name="country[]" value="Belize" class="checkall2" checked />
                    Belize<br />
                    <input type="checkbox" name="country[]" value="Benin" class="checkall2" checked />
                    Benin<br />
                    <input type="checkbox" name="country[]" value="Bermuda" class="checkall2" checked />
                    Bermuda<br />
                    <input type="checkbox" name="country[]" value="Bhutan" class="checkall2" checked />
                    Bhutan<br />
                    <input type="checkbox" name="country[]" value="Bolivia" class="checkall2" checked />
                    Bolivia<br />
                    <input type="checkbox" name="country[]" value="Bonaire, Sint Eustatius and Saba" class="checkall2" checked />
                    Bonaire, Sint Eustatius and Saba<br />
                    <input type="checkbox" name="country[]" value="Bosnia and Herzegovina" class="checkall2" checked />
                    Bosnia and Herzegovina<br />
                    <input type="checkbox" name="country[]" value="Botswana" class="checkall2" checked />
                    Botswana<br />
                    <input type="checkbox" name="country[]" value="Bouvet Island" class="checkall2" checked />
                    Bouvet Island<br />
                    <input type="checkbox" name="country[]" value="Brazil" class="checkall2" checked />
                    Brazil<br />
                    <input type="checkbox" name="country[]" value="British Indian Ocean Territory" class="checkall2" checked />
                    British Indian Ocean Territory<br />
                    <input type="checkbox" name="country[]" value="Brunei Darussalam" class="checkall2" checked />
                    Brunei Darussalam<br />
                    <input type="checkbox" name="country[]" value="Bulgaria" class="checkall2" checked />
                    Bulgaria<br />
                    <input type="checkbox" name="country[]" value="Burkina Faso" class="checkall2" checked />
                    Burkina Faso<br />
                    <input type="checkbox" name="country[]" value="Burma (Myanmar)" class="checkall2" checked />
                    Burma (Myanmar)<br />
                    <input type="checkbox" name="country[]" value="Burundi" class="checkall2" checked />
                    Burundi<br />
                    <input type="checkbox" name="country[]" value="Cambodia" class="checkall2" checked />
                    Cambodia<br />
                    <input type="checkbox" name="country[]" value="Cameroon" class="checkall2" checked />
                    Cameroon<br />
                    <input type="checkbox" name="country[]" value="Canada" class="checkall2" checked />
                    Canada<br />
                    <input type="checkbox" name="country[]" value="Cape Verde" class="checkall2" checked />
                    Cape Verde<br />
                    <input type="checkbox" name="country[]" value="Cayman Islands" class="checkall2" checked />
                    Cayman Islands<br />
                    <input type="checkbox" name="country[]" value="Central African Republic" class="checkall2" checked />
                    Central African Republic<br />
                    <input type="checkbox" name="country[]" value="Chad" class="checkall2" checked />
                    Chad<br />
                    <input type="checkbox" name="country[]" value="Chile" class="checkall2" checked />
                    Chile<br />
                    <input type="checkbox" name="country[]" value="China" class="checkall2" checked />
                    China<br />
                    <input type="checkbox" name="country[]" value="Christmas Island" class="checkall2" checked />
                    Christmas Island<br />
                    <input type="checkbox" name="country[]" value="Cocos (Keeling) Islands" class="checkall2" checked />
                    Cocos (Keeling) Islands<br />
                    <input type="checkbox" name="country[]" value="Colombia" class="checkall2" checked />
                    Colombia<br />
                    <input type="checkbox" name="country[]" value="Comoros" class="checkall2" checked />
                    Comoros<br />
                    <input type="checkbox" name="country[]" value="Congo" class="checkall2" checked />
                    Congo<br />
                    <input type="checkbox" name="country[]" value="Cook Islands" class="checkall2" checked />
                    Cook Islands<br />
                    <input type="checkbox" name="country[]" value="Costa Rica" class="checkall2" checked />
                    Costa Rica<br />
                    <input type="checkbox" name="country[]" value="Côte d'Ivoire" class="checkall2" checked />
                    Côte d'Ivoire<br />
                    <input type="checkbox" name="country[]" value="Croatia (Hrvatska)" class="checkall2" checked />
                    Croatia (Hrvatska)<br />
                    <input type="checkbox" name="country[]" value="Cuba" class="checkall2" checked />
                    Cuba<br />
                    <input type="checkbox" name="country[]" value="Curaçao" class="checkall2" checked />
                    Curaçao<br />
                    <input type="checkbox" name="country[]" value="Cyprus" class="checkall2" checked />
                    Cyprus<br />
                    <input type="checkbox" name="country[]" value="Czech Republic" class="checkall2" checked />
                    Czech Republic<br />
                    <input type="checkbox" name="country[]" value="Democratic Republic of Congo" class="checkall2" checked />
                    Democratic Republic of Congo<br />
                    <input type="checkbox" name="country[]" value="Denmark" class="checkall2" checked />
                    Denmark<br />
                    <input type="checkbox" name="country[]" value="Djibouti" class="checkall2" checked />
                    Djibouti<br />
                    <input type="checkbox" name="country[]" value="Dominica" class="checkall2" checked />
                    Dominica<br />
                    <input type="checkbox" name="country[]" value="Dominican Republic" class="checkall2" checked />
                    Dominican Republic<br />
                    <input type="checkbox" name="country[]" value="East Timor" class="checkall2" checked />
                    East Timor<br />
                    <input type="checkbox" name="country[]" value="Ecuador" class="checkall2" checked />
                    Ecuador<br />
                    <input type="checkbox" name="country[]" value="Egypt" class="checkall2" checked />
                    Egypt<br />
                    <input type="checkbox" name="country[]" value="El Salvador" class="checkall2" checked />
                    El Salvador<br />
                    <input type="checkbox" name="country[]" value="Equatorial Guinea" class="checkall2" checked />
                    Equatorial Guinea<br />
                    <input type="checkbox" name="country[]" value="Eritrea" class="checkall2" checked />
                    Eritrea<br />
                    <input type="checkbox" name="country[]" value="Estonia" class="checkall2" checked />
                    Estonia<br />
                    <input type="checkbox" name="country[]" value="Ethiopia" class="checkall2" checked />
                    Ethiopia<br />
                    <input type="checkbox" name="country[]" value="Europe" class="checkall2" checked />
                    Europe<br />
                    <input type="checkbox" name="country[]" value="Falkland Islands (Malvinas)" class="checkall2" checked />
                    Falkland Islands (Malvinas)<br />
                    <input type="checkbox" name="country[]" value="Faroe Islands" class="checkall2" checked />
                    Faroe Islands<br />
                    <input type="checkbox" name="country[]" value="Fiji" class="checkall2" checked />
                    Fiji<br />
                    <input type="checkbox" name="country[]" value="Finland" class="checkall2" checked />
                    Finland<br />
                    <input type="checkbox" name="country[]" value="France" class="checkall2" checked />
                    France<br />
                    <input type="checkbox" name="country[]" value="French Guiana" class="checkall2" checked />
                    French Guiana<br />
                    <input type="checkbox" name="country[]" value="French Polynesia" class="checkall2" checked />
                    French Polynesia<br />
                    <input type="checkbox" name="country[]" value="French Southern Territories" class="checkall2" checked />
                    French Southern Territories<br />
                    <input type="checkbox" name="country[]" value="Gabon" class="checkall2" checked />
                    Gabon<br />
                    <input type="checkbox" name="country[]" value="Gambia" class="checkall2" checked />
                    Gambia<br />
                    <input type="checkbox" name="country[]" value="Georgia" class="checkall2" checked />
                    Georgia<br />
                    <input type="checkbox" name="country[]" value="Germany" class="checkall2" checked />
                    Germany<br />
                    <input type="checkbox" name="country[]" value="Ghana" class="checkall2" checked />
                    Ghana<br />
                    <input type="checkbox" name="country[]" value="Gibraltar" class="checkall2" checked />
                    Gibraltar<br />
                    <input type="checkbox" name="country[]" value="Greece" class="checkall2" checked />
                    Greece<br />
                    <input type="checkbox" name="country[]" value="Greenland" class="checkall2" checked />
                    Greenland<br />
                    <input type="checkbox" name="country[]" value="Grenada" class="checkall2" checked />
                    Grenada<br />
                    <input type="checkbox" name="country[]" value="Guadeloupe" class="checkall2" checked />
                    Guadeloupe<br />
                    <input type="checkbox" name="country[]" value="Guam" class="checkall2" checked />
                    Guam<br />
                    <input type="checkbox" name="country[]" value="Guatemala" class="checkall2" checked />
                    Guatemala<br />
                    <input type="checkbox" name="country[]" value="Guernsey" class="checkall2" checked />
                    Guernsey<br />
                    <input type="checkbox" name="country[]" value="Guinea" class="checkall2" checked />
                    Guinea<br />
                    <input type="checkbox" name="country[]" value="Guinea-Bissau" class="checkall2" checked />
                    Guinea-Bissau<br />
                    <input type="checkbox" name="country[]" value="Guyana" class="checkall2" checked />
                    Guyana<br />
                    <input type="checkbox" name="country[]" value="Haiti" class="checkall2" checked />
                    Haiti<br />
                    <input type="checkbox" name="country[]" value="Heard and McDonald Islands" class="checkall2" checked />
                    Heard and McDonald Islands<br />
                    <input type="checkbox" name="country[]" value="Honduras" class="checkall2" checked />
                    Honduras<br />
                    <input type="checkbox" name="country[]" value="Hong Kong" class="checkall2" checked />
                    Hong Kong<br />
                    <input type="checkbox" name="country[]" value="Hungary" class="checkall2" checked />
                    Hungary<br />
                    <input type="checkbox" name="country[]" value="Iceland" class="checkall2" checked />
                    Iceland<br />
                    <input type="checkbox" name="country[]" value="India" class="checkall2" checked />
                    India<br />
                    <input type="checkbox" name="country[]" value="Indonesia" class="checkall2" checked />
                    Indonesia<br />
                    <input type="checkbox" name="country[]" value="Iran" class="checkall2" checked />
                    Iran<br />
                    <input type="checkbox" name="country[]" value="Iraq" class="checkall2" checked />
                    Iraq<br />
                    <input type="checkbox" name="country[]" value="Ireland" class="checkall2" checked />
                    Ireland<br />
                    <input type="checkbox" name="country[]" value="Isle of Man" class="checkall2" checked />
                    Isle of Man<br />
                    <input type="checkbox" name="country[]" value="Israel" class="checkall2" checked />
                    Israel<br />
                    <input type="checkbox" name="country[]" value="Italy" class="checkall2" checked />
                    Italy<br />
                    <input type="checkbox" name="country[]" value="Ivory Coast" class="checkall2" checked />
                    Ivory Coast<br />
                    <input type="checkbox" name="country[]" value="Jamaica" class="checkall2" checked />
                    Jamaica<br />
                    <input type="checkbox" name="country[]" value="Japan" class="checkall2" checked />
                    Japan<br />
                    <input type="checkbox" name="country[]" value="Jersey" class="checkall2" checked />
                    Jersey<br />
                    <input type="checkbox" name="country[]" value="Jordan" class="checkall2" checked />
                    Jordan<br />
                    <input type="checkbox" name="country[]" value="Kazakhstan" class="checkall2" checked />
                    Kazakhstan<br />
                    <input type="checkbox" name="country[]" value="Kenya" class="checkall2" checked />
                    Kenya<br />
                    <input type="checkbox" name="country[]" value="Kiribati" class="checkall2" checked />
                    Kiribati<br />
                    <input type="checkbox" name="country[]" value="Korea (North)" class="checkall2" checked />
                    Korea (North)<br />
                    <input type="checkbox" name="country[]" value="Korea (South)" class="checkall2" checked />
                    Korea (South)<br />
                    <input type="checkbox" name="country[]" value="Kuwait" class="checkall2" checked />
                    Kuwait<br />
                    <input type="checkbox" name="country[]" value="Kyrgyzstan" class="checkall2" checked />
                    Kyrgyzstan<br />
                    <input type="checkbox" name="country[]" value="Laos" class="checkall2" checked />
                    Laos<br />
                    <input type="checkbox" name="country[]" value="Latvia" class="checkall2" checked />
                    Latvia<br />
                    <input type="checkbox" name="country[]" value="Lebanon" class="checkall2" checked />
                    Lebanon<br />
                    <input type="checkbox" name="country[]" value="Lesotho" class="checkall2" checked />
                    Lesotho<br />
                    <input type="checkbox" name="country[]" value="Liberia" class="checkall2" checked />
                    Liberia<br />
                    <input type="checkbox" name="country[]" value="Libya" class="checkall2" checked />
                    Libya<br />
                    <input type="checkbox" name="country[]" value="Liechtenstein" class="checkall2" checked />
                    Liechtenstein<br />
                    <input type="checkbox" name="country[]" value="Lithuania" class="checkall2" checked />
                    Lithuania<br />
                    <input type="checkbox" name="country[]" value="Luxembourg" class="checkall2" checked />
                    Luxembourg<br />
                    <input type="checkbox" name="country[]" value="Macau" class="checkall2" checked />
                    Macau<br />
                    <input type="checkbox" name="country[]" value="Sudan" class="checkall2" checked />
                    Sudan<br />
                    <input type="checkbox" name="country[]" value="Suriname" class="checkall2" checked />
                    Suriname<br />
                    <input type="checkbox" name="country[]" value="Svalbard and Jan Mayen Islands" class="checkall2" checked />
                    Svalbard and Jan Mayen Islands<br />
                    <input type="checkbox" name="country[]" value="Swaziland" class="checkall2" checked />
                    Swaziland<br />
                    <input type="checkbox" name="country[]" value="Sweden" class="checkall2" checked />
                    Sweden<br />
                    <input type="checkbox" name="country[]" value="Switzerland" class="checkall2" checked />
                    Switzerland<br />
                    <input type="checkbox" name="country[]" value="Syria" class="checkall2" checked />
                    Syria<br />
                    <input type="checkbox" name="country[]" value="Taiwan" class="checkall2" checked />
                    Taiwan<br />
                    <input type="checkbox" name="country[]" value="Tajikistan" class="checkall2" checked />
                    Tajikistan<br />
                    <input type="checkbox" name="country[]" value="Tanzania" class="checkall2" checked />
                    Tanzania<br />
                    <input type="checkbox" name="country[]" value="Thailand" class="checkall2" checked />
                    Thailand<br />
                    <input type="checkbox" name="country[]" value="Timor-Leste" class="checkall2" checked />
                    Timor-Leste<br />
                    <input type="checkbox" name="country[]" value="Togo" class="checkall2" checked />
                    Togo<br />
                    <input type="checkbox" name="country[]" value="Tokelau" class="checkall2" checked />
                    Tokelau<br />
                    <input type="checkbox" name="country[]" value="Tonga" class="checkall2" checked />
                    Tonga<br />
                    <input type="checkbox" name="country[]" value="Trinidad and Tobago" class="checkall2" checked />
                    Trinidad and Tobago<br />
                    <input type="checkbox" name="country[]" value="Tunisia" class="checkall2" checked />
                    Tunisia<br />
                    <input type="checkbox" name="country[]" value="Turkey" class="checkall2" checked />
                    Turkey<br />
                    <input type="checkbox" name="country[]" value="Turkmenistan" class="checkall2" checked />
                    Turkmenistan<br />
                    <input type="checkbox" name="country[]" value="Turks and Caicos Islands" class="checkall2" checked />
                    Turks and Caicos Islands<br />
                    <input type="checkbox" name="country[]" value="Tuvalu" class="checkall2" checked />
                    Tuvalu<br />
                    <input type="checkbox" name="country[]" value="Uganda" class="checkall2" checked />
                    Uganda<br />
                    <input type="checkbox" name="country[]" value="Ukraine" class="checkall2" checked />
                    Ukraine<br />
                    <input type="checkbox" name="country[]" value="United Arab Emirates" class="checkall2" checked />
                    United Arab Emirates<br />
                    <input type="checkbox" name="country[]" value="United Kingdom" class="checkall2" checked />
                    United Kingdom<br />
                    <input type="checkbox" name="country[]" value="United States" class="checkall2" checked />
                    United States<br />
                    <input type="checkbox" name="country[]" value="United States Minor Outlying Islands" class="checkall2" checked />
                    United States Minor Outlying Islands<br />
                    <input type="checkbox" name="country[]" value="Uruguay" class="checkall2" checked />
                    Uruguay<br />
                    <input type="checkbox" name="country[]" value="Uzbekistan" class="checkall2" checked />
                    Uzbekistan<br />
                    <input type="checkbox" name="country[]" value="Vanuatu" class="checkall2" checked />
                    Vanuatu<br />
                    <input type="checkbox" name="country[]" value="Vatican City State (Holy See)" class="checkall2" checked />
                    Vatican City State (Holy See)<br />
                    <input type="checkbox" name="country[]" value="Venezuela" class="checkall2" checked />
                    Venezuela<br />
                    <input type="checkbox" name="country[]" value="Viet Nam" class="checkall2" checked />
                    Viet Nam<br />
                    <input type="checkbox" name="country[]" value="Virgin Islands (British)" class="checkall2" checked />
                    Virgin Islands (British)<br />
                    <input type="checkbox" name="country[]" value="Virgin Islands (U.S.)" class="checkall2" checked />
                    Virgin Islands (U.S.)<br />
                    <input type="checkbox" name="country[]" value="Wallis and Futuna Islands" class="checkall2" checked />
                    Wallis and Futuna Islands<br />
                    <input type="checkbox" name="country[]" value="Western Sahara" class="checkall2" checked />
                    Western Sahara<br />
                    <input type="checkbox" name="country[]" value="Yemen" class="checkall2" checked />
                    Yemen<br />
                    <input type="checkbox" name="country[]" value="Yugoslavia" class="checkall2" checked />
                    Yugoslavia<br />
                    <input type="checkbox" name="country[]" value="Zambia" class="checkall2" checked />
                    Zambia<br />
                    <input type="checkbox" name="country[]" value="Zimbabwe" class="checkall2" checked />
                    Zimbabwe<br />
                  </div></td>
                </td>
              </tr>

我在变量中将它们作为逗号分隔值进行了内爆,然后我尝试将它们插入到数据库中,如下所示:

<?php 
$country = (!empty($_POST['country']))?$_POST['country']:null;

if(isset($_POST['submit'])){
    $cnt = implode(",", $country);

    $upd = "UPDATE adverts SET ad_country = '$cnt' WHERE ad_id = '".$id."'";
    $upq = $pdo->prepare($upd);
    $upq->execute();

    if($upq){
        echo "Success";
    }else{
        echo "Failed";
    }
}
?>

但它的错误如下:警告:PDOStatement :: execute():在第92行的E:\ xampp \ htdocs \ sites \ newsite \ admin \ ad-edit.php

当我回复$cnt时,我得到的这样的值很明显

Afghanistan,Aland Islands,Albania,Algeria,American Samoa,Andorra,Angola,Anguilla,Antarctica,Antigua and Barbuda,Argentina,Armenia,Aruba,Asia-Pacific,Australia,Austria,Azerbaijan,Bahamas,Bahrain,Bangladesh,Barbados,Belarus,Belgium,Belize,Benin,Bermuda,Bhutan,Bolivia,Bonaire, Sint Eustatius and Saba,Bosnia and Herzegovina,Botswana,Bouvet Island,Brazil,British Indian Ocean Territory,Brunei Darussalam,Bulgaria,Burkina Faso,Burma (Myanmar),Burundi,Cambodia,Cameroon,Canada,Cape Verde,Cayman Islands,Central African Republic,Chad,Chile,China,Christmas Island,Cocos (Keeling) Islands,Colombia,Comoros,Congo,Cook Islands,Costa Rica,Côte d'Ivoire,Croatia (Hrvatska),Cuba,Curaçao,Cyprus,Czech Republic,Democratic Republic of Congo,Denmark,Djibouti,Dominica,Dominican Republic,East Timor,Ecuador,Egypt,El Salvador,Equatorial Guinea,Eritrea,Estonia,Ethiopia,Europe,Falkland Islands (Malvinas),Faroe Islands,Fiji,Finland,France,French Guiana,French Polynesia,French Southern Territories,Gabon,Gambia,Georgia,Germany,Ghana,Gibraltar,Greece,Greenland,Grenada,Guadeloupe,Guam,Guatemala,Guernsey,Guinea,Guinea-Bissau,Guyana,Haiti,Heard and McDonald Islands,Honduras,Hong Kong,Hungary,Iceland,India

请帮我解决错误..提前致谢。

1 个答案:

答案 0 :(得分:3)

虽然您使用的是预处理语句,但是以绝对错误的方式使用它,因为您在准备之前将参数插入sql命令而不进行任何转义。此外,您不会将{1}}的字符串参数括起来。

这意味着

1)您的代码容易受到SQL注入攻击。

2)如果您的国家/地区列表中包含一个ResultSet的国家/地区(例如'),则您的SQL语法在语法上会不正确。

解决方案:通过绑定参数以正确的方式使用预准备语句。

'