PHP MySQL数据库记录更新错误,值已内爆
好吧,我知道有一大堆类似的问题要问,但是没有一个对我有帮助。所以我在下面用我自己的话来编译这个问题 假设我有一个巨大的国家复选框列表,如下所示:PHP MySQL数据库记录更新错误,值已内爆,php,mysql,html,Php,Mysql,Html,好吧,我知道有一大堆类似的问题要问,但是没有一个对我有帮助。所以我在下面用我自己的话来编译这个问题 假设我有一个巨大的国家复选框列表,如下所示: <tr> <th class="left-align">Target Country</th> <td class="left-align"> <div class="widget-content"
<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>
请帮我解决这个错误。。提前感谢。尽管您使用了prepared语句,但使用它的方式绝对错误,因为您在prepare之前将参数插入sql命令,而没有进行任何转义。此外,您不能通过
“
将字符串参数括起来
这意味着
1) 您的代码容易受到sql注入攻击
2) 如果您的国家/地区列表中包含一个包含”
的国家(如科特迪瓦
),则您的sql在语法上是不正确的
解决方案:通过绑定参数以正确的方式使用准备好的语句
...
$upd = "UPDATE adverts SET ad_country = :countries WHERE ad_id = :id";
$upq = $pdo->prepare($upd);
$upq->bindParam(':countries', $country);
$upq->bindParam(':id', $id);
$upq->execute();
...
尽管使用了prepared语句,但使用它的方式绝对错误,因为在prepare之前将参数插入sql命令,而没有进行任何转义。此外,您不能通过
“
将字符串参数括起来
这意味着
1) 您的代码容易受到sql注入攻击
2) 如果您的国家/地区列表中包含一个包含”
的国家(如科特迪瓦
),则您的sql在语法上是不正确的
解决方案:通过绑定参数以正确的方式使用准备好的语句
...
$upd = "UPDATE adverts SET ad_country = :countries WHERE ad_id = :id";
$upq = $pdo->prepare($upd);
$upq->bindParam(':countries', $country);
$upq->bindParam(':id', $id);
$upq->execute();
...
$id看起来像什么?为什么
$cnt
很明显?期望值是多少?正如我看到的那样,您检查了所有的查询完整的查询是什么样子的?当您在phpadmin中的sql命令中使用该查询或类似命令时,它是否工作?$id=(!empty($\u REQUEST['id'])?$\u REQUEST['id']:null代码>@e4c5@drew您的答案:-)$id看起来像什么?为什么$cnt
很明显?期望值是多少?正如我看到的那样,您检查了所有的查询完整的查询是什么样子的?当您在phpadmin中的sql命令中使用该查询或类似命令时,它是否工作?$id=(!empty($\u REQUEST['id'])?$\u REQUEST['id']:null代码>@e4c5@drew您的答案:-)这就解释了:-)将值绑定到参数将从各个方面防止sql注入,对吗?是的,这是因为sql语句体和实际参数值分别发送到MySQL服务器。折衷是,如果准备好的语句只执行一次,然后就被删除,那么它们会对性能产生影响。但是,由于您的原始代码也使用了预处理语句,因此您不会因为新代码而遭受任何性能损失。这就解释了:-)将值绑定到参数将从各个方面防止sql注入,对吗?是的,这是因为sql语句体和实际参数值分别发送到MySQL服务器。折衷是,如果准备好的语句只执行一次,然后就被删除,那么它们会对性能产生影响。但是,由于您的原始代码也使用了prepared语句,因此您不会因为新代码而遭受任何性能损失。
...
$upd = "UPDATE adverts SET ad_country = :countries WHERE ad_id = :id";
$upq = $pdo->prepare($upd);
$upq->bindParam(':countries', $country);
$upq->bindParam(':id', $id);
$upq->execute();
...