php - sql语句中的逻辑

标签 php mysql sql

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_industrycompany_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/

相关文章:

mysql - Sql 到 hibernate(带 group by 的嵌套查询)

mysql - Codeigniter:从 DateTime Mysql 获取日期

mysql - 由于未知的长 mysql 事务,应用程序挂起

php - 通过 AJAX 发送到 mySQL 查询的总选项的最佳方法

sql - Oracle JSON_EQUAL 条件的 T-SQL 等价物是什么?

java - 服务器浏览器,例如 Game-Monitor.com

php - LARAVEL 5.0 + 单元测试 - 不同包的 assertSessionHasErrors

php - 将 PHP 变量从 Button 传递到 Javascript 函数

来自多个表的 MySQL 结果计数得到错误的结果?

php - 如何更新多输入文本 mySQL