繁体   English   中英

SQL更新中的变量

[英]variables in SQL update

只需建立此更新脚本即可更新数据库中用于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中提取的; 我通过回显$ colour变量进行了测试。

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

表结构非常简单:

列| 姓名| 颜色|

样本数据| 杰克| 红色|

更新查询中缺少分号。

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

改成

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']);
?>

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM