connect1($db_host,$db_username,$db_password,$db_name1);
$q="SELECT DISTINCT
bizinfo.dbiz_id,
bizinfo.company_name,
bizinfo.company_industry,
bizinfo.company_sub_industry
FROM
bizinfo
Inner Join biz_feedback ON bizinfo.dbiz_id = biz_feedback.biz_id AND biz_feedback.on_industry = bizinfo.company_industry
ORDER BY
bizinfo.dbiz_id ASC";
$rs_q=mysql_query($q);
while($row=mysql_fetch_assoc($rs_q))
{
$dbiz_id=$row['dbiz_id'];
$company=$row['company_name'];
$company_industry=$row['company_industry'];
$company_sub_industry=$row['company_sub_industry'];
connect2($db_host,$db_username,$db_password,$db_name2);
$sql_livedb=mysql_query("UPDATE bizinfo set bizinfo.company_industry='$company_industry', bizinfo.company_sub_industry='$company_sub_industry'
WHERE bizinfo.dbiz_id='$dbiz_id'");
}
运行此代码时,company_industry
和 company_sub_industry
列中的所有行都将填充相同的数据(对于第一个 biz_id
) .
某个地方需要进行连接,但我想我已经在 WHERE bizinfo.dbiz_id='$dbiz_id'
中涵盖了它。
最佳答案
您的问题是什么根本不明显,但我猜想其中一个变量(可能是 $company_sub_industry
)中有一个值,其中嵌入了单引号,从而导致 WHERE
子句被忽略。
更改代码以删除更新语句,并转储值以便您可以检查它们。也许在mysql_query
之后/之中进行一些错误检查会有所帮助。
如果这是原因,真正的解决方案是不要通过连接字符串和变量来生成 SQL。研究“php 避免 SQL 注入(inject)”以获取更多信息。
关于php - sql语句中的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28911650/