如果否则不在更新查询中工作

时间:2015-05-26 09:16:25

标签: php mysql sql-update

我在if else条件下遇到问题。对不起我是初学者所以请帮助我。我的代码如下。

$sql1=mysql_query("select * from dbms_master_data where id='".$_GET['eid']."'");

$rst1=mysql_fetch_array($sql1);
$new_user='Contact; '.$rst1['user_type'];
$sqls=mysql_query("update dbms_master_data set user_type='".$new_user."', cid='".$_GET['vid']."' where id='".$_GET['eid']."' and cid IS NULL");
if($sqls)
{
    ?>
    <script>
    alert("New contact added!");
    window.location='access1.php?vid=1';
    </script>
    <?php
}
else
{
    ?>
    <script>
    alert("This contact is already assigned to another user!");
    window.location='access1.php?vid=2';
    </script>
    <?php
}

我正在收到新的联系人&#39;甚至我的情况都失败了。你能告诉我为什么吗?

4 个答案:

答案 0 :(得分:0)

你的病情错了

if($ sqls)它将始终返回true,因为mysql_query()响应返回资源ID。

答案 1 :(得分:0)

使用mysql_num_rows()。用于检查受影响行的数量

$sqls=mysql_query("update dbms_master_data set user_type='".$new_user."', cid='".$_GET['vid']."' where id='".$_GET['eid']."' and cid IS NULL");

$row=mysql_num_rows($sqls);
if($row>0)
{
    ?>
    <script>
    alert("New contact added!");
    window.location='access1.php?vid=1';
    </script>
    <?php
}
else
{
    ?>
    <script>
    alert("This contact is already assigned to another user!");
    window.location='access1.php?vid=2';
    </script>
    <?php
}

答案 2 :(得分:0)

如上所述使用if(mysql_num_rows($ sqls)&gt; 0){但考虑使用PDO,如果您正在学习,PHP不再推荐使用mysql_query,因此值得您掌握PDO。

另外,请确保您逃脱进入数据库的任何内容,如果您不这样做,人们可以轻松注入内容。示例(在您的查询的上下文中):

$sql1=mysql_query("select * from dbms_master_data where id=".(int)$_GET['eid']);

$rst1=mysql_fetch_array($sql1);
$new_user='Contact; '.$rst1['user_type'];
$sqls=mysql_query("update dbms_master_data set user_type='".mysql_real_escape_string($new_user)."', cid=".(int)$_GET['vid']." where id=".(int)$_GET['eid']." and cid IS NULL");

答案 3 :(得分:0)

有必要检查它是否已更新。 所以请使用

mysql_affected_rows()