我正在尝试将我的表放入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();
?>
最佳答案
您在 UPDATE
和 INSERT
调用中的值周围缺少引号:
$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/