PHP MySQL更新数据库
我不熟悉php和mysql 我想装箱一个查询,如果它不在数据库中,则更新或添加一个新表 到目前为止,我有这个,为什么我得到解析错误:语法错误,意外的T_字符串PHP MySQL更新数据库,php,mysql,Php,Mysql,我不熟悉php和mysql 我想装箱一个查询,如果它不在数据库中,则更新或添加一个新表 到目前为止,我有这个,为什么我得到解析错误:语法错误,意外的T_字符串 mysql_query(UPDATE ps_product SET id_tax_rules_group = 1 WHERE id_tax_rules_group = 0); 你能帮我使这个代码工作吗?当我评论所有的mysql查询时,我得到的是一个空白页面 和 echo“ID$trenutnired在表中不存在,$countUpdate
mysql_query(UPDATE ps_product SET id_tax_rules_group = 1 WHERE id_tax_rules_group = 0);
你能帮我使这个代码工作吗?当我评论所有的mysql查询时,我得到的是一个空白页面
和
echo“ID$trenutnired在表中不存在,$countUpdated” 它不起作用了吗 我使用PHP5.2.17 谢谢
<?php
$mysql_db = "";
$mysql_user = "";
$mysql_pwd = "";
$con = mysql_connect("localhost", $mysql_user, $mysql_pwd);
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db($mysql_db, $con);
$countUpdated=0;
mysql_query(UPDATE ps_product_shop prod_shop INNER JOIN ps_product prod USING(id_product) SET prod_shop.id_category_default = prod.id_category_default WHERE prod_shop.id_product BETWEEN 1 AND 62226);
mysql_query(UPDATE ps_product_supplier SET id_currency = 3 WHERE id_currency = 0);
mysql_query(UPDATE ps_product SET id_tax_rules_group = 1 WHERE id_tax_rules_group = 0);
mysql_query(UPDATE ps_product_shop SET id_tax_rules_group = 1 WHERE id_tax_rules_group = 0);
$kveri = "SELECT id_product,id_supplier,supplier_reference, wholesale_price FROM ps_product";
$ispis = mysql_query($kveri) or die(mysql_error());
while ($row = mysql_fetch_array($ispis)){
$trenutnired = $row['id_product'];
$trenutnired1 = 0;
$trenutnired2 = $row['id_supplier'];
$trenutnired4 = $row['supplier_reference'];
$trenutnired5 = $row['wholesale_price'];
$trenutnired6 = 3;
$drugatab = mysql_query("SELECT * FROM ps_product_supplier WHERE id_product = '$trenutnired'");
$dalipostoji = mysql_num_rows($drugatab);
if ($dalipostoji == 0) {
echo "ID $trenutnired does not exist in table and:: $countUpdated<br />";
mysql_query("INSERT INTO ps_product_supplier (id_product_supplier, id_product, id_product_attribute, id_supplier, product_supplier_reference, product_supplier_price_te, id_currency) VALUES ('', '$trenutnired', '$trenutnired1', '$trenutnired2', '$trenutnired4', '$trenutnired5', '$trenutnired6')");
$countUpdated++;
};
}
?>
您似乎忘记在mysql\u查询(
你试过这个吗:
mysql\u查询(“更新ps\u产品集id\u税务规则\u组=1,其中id\u税务规则\u组=0”);
而不是
mysql\u查询(更新ps\u产品集id\u tax\u规则\u组=1,其中id\u tax\u规则\u组=0);
检查下面的全部代码(已修改)
该错误表明您的PHP中存在问题。具体而言,mysql\u query()
函数将字符串作为其第一个参数。因此您需要将SQL语句用引号括起来:
mysql_query("UPDATE ps_product SET id_tax_rules_group = 1 WHERE id_tax_rules_group = 0");
在继续执行脚本之前,您应该始终检查查询是否成功,因为在生产服务器上,错误报告通常是禁用的(应该是禁用的),因此您将无法看到代码中的错误,就像在本例中,您实际尝试获取不成功查询的记录数
也就是说,您应该检查您的SELECT
查询是否实际返回这样的结果
$drugatab = "SELECT * FROM ps_product_supplier WHERE id_product = '$trenutnired'";
if($rezultati = mysql_query($drugatab) && mysql_num_rows($rezultati)){
// Successful query...
mysql_query("INSERT INTO ps_product_supplier (id_product_supplier, id_product, id_product_attribute, id_supplier, product_supplier_reference, product_supplier_price_te, id_currency) VALUES ('', '$trenutnired', '$trenutnired1', '$trenutnired2', '$trenutnired4', '$trenutnired5', '$trenutnired6')");
$countUpdated++;
} else {
echo "ID $trenutnired ne postoji u drugoj tablici i trenutno: $countUpdated<br />";
}
$drugatab=“从ps_产品供应商处选择*,其中id_产品='$trenutnired';
if($rezultati=mysql\u查询($drugatab)&&mysql\u num\u行($rezultati)){
//查询成功。。。
mysql_查询(“插入ps_产品_供应商(id_产品_供应商,id_产品,id_产品_属性,id_供应商,产品_供应商_参考,产品_供应商_价格_te,id_货币)值(“,$trenutnired”,“$trenutnired1”,“$trenutnired2”,“$trenutnired4”,“$trenutnired5”,“$trenutnired6”);
$countUpdated++;
}否则{
echo“ID$trenutnired ne postoji u drugoj tablici i trenutno:$countUpdated
”;
}
在将任何用户输入发送到db.Mysql\u real\u escape\u string()之前,请记住对其进行清理这是一个好的开始。@mehnihma,而且,请知道,在这个网站上,如果你得到了问题的答案,你可以投票选择将它们标记为已回答。因为,你似乎不知道这一点。请注意!PHP的下一个主要版本是弃用mysql
函数系列。现在是时候了。它们是不再维护。请参阅?改为了解,并使用或-将帮助您决定使用哪一个。如果您选择PDO,。谢谢,我这样做了,但仍然得到空白页echo没有输出?您到底想用此脚本做什么?因为,我觉得它可以改进并变得更简单。更新数据库中的一些值并插入如果一个表中的t值在另一个表mysql\u查询(“更新ps\u产品集id\u tax\u规则\u group='22',其中id\u tax\u规则\u group='21')中丢失,或者死亡(mysql\u error())
@mehnihma),则只需在页面中运行上述代码即可(粘贴代码并刷新页面,以了解问题是否来自数据库详细信息或您的编码)谢谢,现在我得到了“else”,其他表中不存在ID,但只缺少20个?请尝试在echo mysql_error();
ID的正上方添加echo”。。。"
line,因为您的查询中显然存在错误。我只需要列出第一个表ps_product中没有的内容,然后只插入它们,如何才能做到这一点?如果出现错误,我会为每个记录都出现此错误:您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解使用near'Re的正确语法源id#4964'位于第1ID 5260行ne postoji u drugoj tablici i trenutno:0检查更新的答案。我在资源上调用了mysql\u query
,犯了一个错误。
$drugatab = "SELECT * FROM ps_product_supplier WHERE id_product = '$trenutnired'";
if($rezultati = mysql_query($drugatab) && mysql_num_rows($rezultati)){
// Successful query...
mysql_query("INSERT INTO ps_product_supplier (id_product_supplier, id_product, id_product_attribute, id_supplier, product_supplier_reference, product_supplier_price_te, id_currency) VALUES ('', '$trenutnired', '$trenutnired1', '$trenutnired2', '$trenutnired4', '$trenutnired5', '$trenutnired6')");
$countUpdated++;
} else {
echo "ID $trenutnired ne postoji u drugoj tablici i trenutno: $countUpdated<br />";
}