PHP MySql 更新否则插入错误 "Warning: mysql_result()"

标签 php mysql sql

我正在尝试将我的表放入nonbulkmdu并查看r10database以查找是否有重复项,如果有,它将更新4个字段,如果没有,它将插入一个新行。我不断收到错误

警告:mysql_result():第 19-23 行提供的参数不是有效的 MySQL 结果资源。

我做错了什么?

<?php 
$username="";
$password="";
$database="";
$link = mysql_connect(localhost,$username,$password);


mysql_select_db($database) or die( "Unable to select database");

$query="SELECT * FROM nonbulkmdu";

if ($result=mysql_query($query, $link)) {
    $num=mysql_numrows($result);

    $i=0;
    while ($i < $num) {
        $address=strtoupper(mysql_result($result,$i,"address"));
        $drops=mysql_result($result,$i,"drops");
        $city=mysql_result($result,$i,"city");
        $citycode=mysql_result($result,$i,"citycode");
        $feature_type=mysql_result($result,$i,"Feature_Type");

        $result = mysql_query("update r10_database
                               set drops=$drops, citycode=$citycode, city=$city, Feature_Type=$feature_type 
                               where address=$address;");  

        if (mysql_affected_rows()==0) {
            $result = mysql_query("insert into r10_database (address,
                                                             drops, 
                                                             city, 
                                                             citycode, 
                                                             Feature_Type) 
                                                     values ($address,
                                                             $drops,
                                                             $city,
                                                             $citycode,
                                                             $Feature_Type);");
        }
        $i++;
    }
} else {
    echo mysql_error();
}
mysql_close();
?>

最佳答案

您在 UPDATEINSERT 调用中的值周围缺少引号:

    $result = mysql_query("update r10_database
                           set drops='$drops', citycode='$citycode', city='$city', Feature_Type='$feature_type' 
                           where address='$address';");  

    if (mysql_affected_rows()==0) {
        $result = mysql_query("insert into r10_database (address,
                                                         drops, 
                                                         city, 
                                                         citycode, 
                                                         Feature_Type) 
                                                 values ('$address',
                                                         '$drops',
                                                         '$city',
                                                         '$citycode',
                                                         '$Feature_Type');")

顺便说一句,如果 address 在表中具有唯一键,您可以使用 INSERT ... ON DUPLICATE KEY UPDATE 同时执行两个查询.

关于PHP MySql 更新否则插入错误 "Warning: mysql_result()",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19737208/

相关文章:

c# - LINQ to Entities 等效于 sql "TOP(n) WITH TIES"

SQL从XML字段获取数据

mysql - 是否可以在 cPanel 上从 MySQL 5.5 迁移到 MariaDB 10?

mysql - TimeStamp 列始终为零值

java - 如何将部署在 elastic beanstalk 上的 Web 应用程序与 aws 上的 mysql 数据库实例连接起来?

java - 如何使用 ODBC 获取 View 的 Lotus 数据库列名称

javascript - php javascript onclick 值更改

php - mysql从前10名中随机抽取

javascript - 选择框值作为 ID 而不是数据

php - JQUERY自动完成使用PHP和跨站问题