doukai1226 2014-05-27 13:55
浏览 32

更新或插入数据库[重复]

If my query result is empty I want to insert information otherwise I'd like to update the information. However, I keep getting this error:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in...

$info = $_POST['info'];
$gebruiker = $_POST['gebruiker'];
$result = mysql_query("SELECT fysionummer FROM algemene_info WHERE = $gebruiker");

if (mysql_num_rows($result)==0) { 
    mysql_query("INSERT INTO algemene_info (`info_id`, `omschrijving`, `fysionummer`)
    VALUES (NULL, '$info', '$gebruiker')");
    //echo $response;
    echo "Het toevoegen van de algemene info is geslaagd!";
} else {
    mysql_query ("UPDATE algemene_info
SET omschrijving='$info'
    WHERE fysionummer='$gebruiker'");
    //echo $response;
echo "Het update van de algemene informatie is geslaagd!";
}
</div>
  • 写回答

3条回答 默认 最新

  • douxiong2738 2014-05-27 13:59
    关注

    Short Answer

    You're obviously missing column name here:

    SELECT fysionummer FROM algemene_info WHERE = $gebruiker
    

    It should be like:

    SELECT `fysionummer` FROM `algemene_info` WHERE `COLUMN_NAME` = $gebruiker
    

    Long Answer

    Please note that mysql_* functions are deprecated, often unsafe to use. You also insert data from user without ensuring that this won't break your application/database. It's really easy to abuse this and post your own SQL code instead of $_POST['element_name'].

    I would recommend using mysqli_* functions as they are easy to use for a beginner and much more safer. You can use prepared statements.

    Example:

    $mysqli = new mysqli("localhost", "user", "password", "database");
    $query = $mysqli->prepare("SELECT `fysionummer` FROM `algemene_info` WHERE `COLUMN_NAME` = ?");
    $query->bind_param("s", $_POST['gebruiker']);
    if($query->execute())
    {
    // success
    // logic
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line