SQL更新中的变量

时间:2014-04-08 10:50:41

标签: php sql

只需构建此更新脚本即可更新数据库中的颜色,以便在Div的样式中使用。我知道这对SQLInjection是开放的,但是它只是一个内部站点和一个概念。

  <?php
    $con = mysqli_connect('HOST', 'USER', 'PASSWORD','DATABASE');

    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }

    $user = $_GET['user'];
    $colour = $_GET['colour'];

    $sql= " UPDATE phoneavail
    SET Colour = '$colour' WHERE Name = '$user'"

    if (!mysqli_query($con,$sql))
      {
      die('Error: ' . mysqli_error($con));
      }

    header('Location: ' . $_SERVER['HTTP_REFERER']);

    mysqli_close($con);
    ?>

问题是它不能正常运行,我尝试了不同的查询但没有成功。 从URL中提取颜色变量;我通过Echo&#$ color变量对它进行了测试。

网址示例:http://localhost/test/php/phone/busy-demo.php?colour=green&user=Jack

表结构非常简单:

列|名称|颜色|

样本数据|杰克|红色|

2 个答案:

答案 0 :(得分:1)

更新查询中缺少分号。

$sql= " UPDATE phoneavail SET Colour = '$colour'";

答案 1 :(得分:0)

更改为  

if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$user = $_GET['user'];
$colour = $_GET['colour'];

$sql= " UPDATE phoneavail SET Colour = '$colour' WHERE Name = '$user'"

if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }

mysqli_close($con);
header('Location: ' . $_SERVER['HTTP_REFERER']);
?>

并在重定向之前关闭连接。