繁体   English   中英

更新mysql表中的数据

[英]Updating data in mysql table

我正在尝试查看表searchedWords中是否已经存在keyWord。 如果是这样,则计数器加一。 如果表中不存在它,那么我使用了INSERT。 问题是,传递给站点的关键字未存储在数据库中。 BIG的另一个大问题是计数器不添加。 是因为if语句吗? 还是while循环?

<?php
date_default_timezone_set('Asia/Manila');
$today = date('m-d-Y');
echo $today;
$urltopost = "http://opac.usls.edu.ph/TLCScripts/interpac.dll?Search";
$datatopost = "FormId=0&Config=pac&LimitsId=0&StartIndex=0&SearchField=7&SearchType=1&ItemsPerPage=20&SearchData=$_POST[keyWord]";
$ch = curl_init ($urltopost);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $datatopost);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$returndata = curl_exec ($ch);
echo $returndata;
$con=mysqli_connect("...","...","...","...")or die ('Error: ' . mysql_error());
$sql= "SELECT * FROM searchedWords";
$result= mysqli_query($con,$sql);


 while($row=mysqli_fetch_array($result, MYSQLI_ASSOC))
{            
        if($row['keyWord']==$_POST[keyWord])
         {
         $upD="UPDATE searchedWords SET countr = countr + 1 WHERE keyWord = '".$row['keyWord']."'";
          while (!mysqli_query($con,$upD))
          {
           die('Error: ' . mysqli_error($con));
           }
         }
        else
        {
         $insertIn="INSERT INTO `searchedWords`( `keyWord`, `countr`) values ('$_POST[keyWord]',1)";
      while (!mysqli_query($con,$insertIn))
          {
          die('Error: ' . mysqli_error($con));
          }
        } 
}
?>

谢谢那些能帮助我的人。

在循环中运行sql查询确实是不好的做法。 尝试使用此类查询来更新所有现有关键字:

    $keyword = htmlspecialchars($_POST['keyWord']);

    UPDATE searchedWords SET countr = countr + 1 WHERE keyWord = '".$keyword."'";

没有更多的循环!

为了更安全,更有效地使用数据库,请访问http://php.net/manual/en/pdo.prepared-statements.php

您为什么要使事情变得复杂...尝试简单的方法

$KeyWord = $_POST['keyWord']; //Do not forget to sanitize this for security
$sql= "SELECT * FROM searchedWords WHERE keyWord='$KeyWord'";
$result= mysqli_query($con,$sql);
$count= mysqli_num_rows($result);

if($count) {
$upD="UPDATE searchedWords SET countr = countr + 1 WHERE keyWord = '$keyWord'";
mysqli_query($con,$upD);
} else {
$insertIn="INSERT INTO `searchedWords`( `keyWord`, `countr`) values ('$keyWord',1)";
mysqli_query($con,$insertIn); }

暂无
暂无

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

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