2013-03-12 65 views
-4

您能否帮助我将此Coldfusion语句转换为PHP以更新MySQL?将ColdFusion查询转换为PHP

<cfquery name="getrecords"> 
select email,name,id,status from table1 
where status = 0 
</cfquery> 

<cfloop query="getrecords"> 
    <p>#getrecords.name#</p> 
    <p>#getrecords.name#</p> 

    <cfquery name="update"> 
    update table1 set status =1 where status = #getrecords.status# 
    </cfquery> 
</cfloop> 
+3

@Matt - 它不是过时的。去年有两个新的主要发布。一个由Adobe和一个由Railo提供。 – 2013-03-12 15:32:56

+0

@MattBusche够公平的。我想我暴露了我对那个的无知:-) – Matt 2013-03-12 17:14:31

+0

在我看来,你正在循环状态= 0的记录集,并设置状态= 1的每个记录...你总是可以运行一个查询,将显示状态为0的记录,然后运行状态为0的SINGLE更新语句。 #getrecords.status#在您的代码中始终为0 – user1137313 2016-08-22 07:00:19

回答

1

查询不多数民众赞成处理这些语言的范围内改变 - 他们是SQL两种方式。阅读PHP here中的执行mysql查询。

1

在任何编程语言中,您发布的代码都是不好的做法,因为您正在循环中运行单个更新查询。既然你在转换,你应该看看改进的东西。这是相同的逻辑,但只有一个更新查询。

<cfquery name="getrecords"> 
    SELECT name 
    FROM table1 
    WHERE status = 0 
</cfquery> 

<cfoutput query="getrecords"> 
    <p>#name#</p> 
</cfoutput> 

<cfquery name="updaterecords"> 
    UPDATE table1 
    SET status = 1 
    WHERE status = 0 
</cfquery> 

Matt已经为您提供了使用php运行mysql查询的参考。

+0

原始查询也容易受到sql注入的影响。无论您使用何种语言,始终使用绑定变量来保护查询! – Leigh 2013-03-13 14:43:01