这是我的代码。我的问题是,我希望插入仅在rating_airlines
值介于1
和5
之间时发生,但它会不断添加所有值。
rating_airlines
是varchar
。
<?php
require_once('connect.php');
mysql_select_db($database_localhost,$con);
$nom_airlines=$_GET['nom_airlines'];
$rating_airlines=$_GET['rating_airlines'];
$a=intval($rating_airlines);
if($a=1 || $a=2 || $a=3 || $a=4 || $a=5 ) {
mysql_query("INSERT INTO Airlines(nom_airlines,rating_airlines)
VALUES ('$nom_airlines','$a') ");
echo "OK";}
else {
die('Requête invalide : ' . mysql_error());
}
?>
答案 0 :(得分:1)
您没有比较您正在设置的值。单等于设置双重比较。
if($a=1 || $a=2 || $a=3 || $a=4 || $a=5 )
应该是
if($a==1 || $a==2 || $a==3 || $a==4 || $a==5 )
但甚至可能
if($a>=1 && $a <=5 )
你也应该从mysql切换到mysqli或PDO。 mysqli or PDO - what are the pros and cons?
另请注意,通过将$nom_airlines
直接传递给您的查询,您至少可以使用mysql_real_escape_string进行注射。
$nom_airlines=mysql_real_escape_string($_GET['nom_airlines']);
答案 1 :(得分:0)
您正在使用分配运算符。你需要在这里使用相等。
if($a==1 || $a==2 || $a==3 || $a==4 || $a==5 ) {
看看这两个:
此外,
$a = $b Assign Sets $a to be equal to $b.
$a == $b Equal TRUE if $a is equal to $b.
$a === $b Identical TRUE if $a is equal to $b, and they are of the same type. (introduced in PHP 4)