2016-09-14 85 views
-1

我想显示一个警告框,显示带有PHP的消息。如果我不使用警报框,我会得到正确的答案,如“update subject set semester=2 where id=171”。但是,当我更改为警报框后,我仅在警报框中收到的答案是“update subject set $f=$data where id=$did”,并且它不会在数据库中更新。如何在php中显示警告框?

这是我的PHP代码:

if ($tag == 2) { 
     $query = '<script type=text/javascript> alert("update subject set $f=$data where id=$did")</script>'; 
     $result = mysql_query($query); 
     print "$query"; 
     } 
+0

是的,它不会更新,因为它不是一个有效的查询。 你能解释一下你想要的吗? – urfusion

+0

1.不要使用不推荐使用的'mysql_ *'函数。它们自PHP 5.5起弃用,并在PHP 7中完全删除。请改用MySQLi或PDO。 2.你对[SQL Injections](http://php.net/manual/en/security.database.sql-injection.php)非常开放,并且应该使用[Prepared Statements](http://php.net) /manual/en/mysqli.quickstart.prepared-statements.php)而不是连接你的查询,如果你使用上面提到的MySQLi或PDO,可以使用它们。 –

回答

1

更改报价。了解single and double quotes之间的区别。此外,您无法使用带有Javascript语句的无效查询进行更新。而是使用:

if ($tag == 2) { 
    $query = "update subject set $f=$data where id=$did"; 
    $result = mysql_query($query); 
    echo "<script type=text/javascript>alert('$query')</script>"; 
} 

注:mysql_扩展已被弃用,使用库MySQLi或PDO

0

要传递什么过时的mysql_query功能并没有有效的SQL,并会导致错误,我怀疑你正在尝试沿着这些方向?

if ($tag == 2) { 
    $sql="update `subject` set `$f`='$data' where `id`='$did'"; 
    $query = '<script type=text/javascript> alert('$sql')</script>'; 

    $result = mysql_query($sql); 

    echo $query; 
} 
0

如果你想成功的消息,你应该做的:

if ($tag == 2) { 
    $query = 'update subject set $f=$data where id=$did")'; 
    $result = mysql_query($query); 
    if($result) 
     echo "<script type=text/javascript> alert('message')</script>"; 
    } 
}