PHP MySQL更新数据库

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

我不熟悉php和mysql 我想装箱一个查询,如果它不在数据库中,则更新或添加一个新表

到目前为止,我有这个,为什么我得到解析错误:语法错误,意外的T_字符串

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 />";
}