【问题标题】:How to check for a condition before executing MYSQL query? [closed]如何在执行 MYSQL 查询之前检查条件? [关闭]
【发布时间】:2013-03-28 08:12:12
【问题描述】:

我正在尝试在执行 mysql 更新之前检查是否存在条件。下面的代码有效:

if (!mysql_query(
"UPDATE customers SET available_credit = available_credit where userid = '$userid';"
))

{
die('Sorry, a database error occurred');
}

...但我正在尝试像这样添加另一个条件:

if (!mysql_query && ($tradein_status == 'Accepted CREDIT')(
"UPDATE customers SET available_credit = available_credit where userid = '$userid';"
))

{
die('Sorry, a database error occurred');
}

..这不起作用 - 它会生成此错误:“解析错误:语法错误,第 235 行 /home/bohemeth/public_html/tradeins/save_tradeins.php 中的意外 '('”

我想知道的第二件事是为什么这部分:

if (!mysql_query(
"UPDATE customers SET available_credit = available_credit where userid = '$userid';"
))

...在条件之后没有用两个括号和花括号编写,看起来你可以在其他任何地方进行条件测试,如下所示:

if (!mysql_query){
"UPDATE customers SET available_credit = available_credit where userid = '$userid';"
}

感谢您的帮助!!

【问题讨论】:

  • 你永远不可能拥有这个:if (!mysql_query &&mysql_query() 是一个函数。
  • 谢谢尼克.. 那么写东西的更好方法是什么?我是否包装了 DOES 与外部 if 语句一起使用的语句?比如: if ($tradein_status == 'Accepted CREDIT') { if (!mysql_query("UPDATE customers SET available_credit = available_credit where userid = '$userid';" )) }
  • php.net/if ; php.net/expressions ; php.net/operators --- 都在手册开头的 PHP 语言参考中。我建议至少浏览一下参考文献并阅读交叉它。
  • 我重新措辞了这个问题,希望能减少它的本地化,因为这个问题因为过于本地化而被关闭。由于问题实际上是在执行 MySQL 查询之前如何测试条件(例如变量或标志的内容或任何您想要的),它似乎广泛适用于我......谢谢。 - 蒂姆

标签: php mysql conditional-statements


【解决方案1】:
if ($tradein_status == 'Accepted CREDIT' && !mysql_query (
"UPDATE customers SET available_credit = available_credit where userid = '$userid';"
))

{
die('Sorry, a database error occurred');
}

mysql_query 是一个函数,而不是一个变量。第二个括号中的字符串是参数。

【讨论】:

  • 哦,呵呵。我明白了……这也是我问题第二部分的答案……我明白了。我会试试的。多谢你们。更新 - 是的,它有效。谢谢!
  • 希望我也能选择你的答案,因为它完全有效,但我必须选择我猜的第一个人。
  • 没问题的人...我只需要学会更快地打字!很高兴你成功了!
【解决方案2】:

mysql_query 是一个函数调用,它将您的查询"UPDATE customers SET available_credit = available_credit where userid = '$userid';" 作为字符串参数传递。

这意味着mysql_query 必须是以下形式:

mysql_query("UPDATE customers SET available_credit = available_credit where userid = '$userid';")

mysql_query 返回一个 RESOURCE.. 这是您查询的结果。

要添加第二个条件语句,请执行以下操作:

if (!mysql_query("UPDATE customers SET available_credit = available_credit where userid = '$userid';") && ($tradein_status == 'Accepted CREDIT'))

【讨论】:

  • 谢谢贾斯汀!我的新手问题的另一个很好的解决方案。赞赏。
【解决方案3】:
if ($tradein_status == 'Accepted CREDIT')
    mysql_query("UPDATE customers SET available_credit = available_credit where userid = '$userid';") or die("Sorry, a database error occurred");

你不能在函数名和参数之间写其他代码。

【讨论】:

  • 我明白了。感谢您的帮助 bwoebi!您的解决方案和上面的其他解决方案一样效果很好!
【解决方案4】:

mysql_query 是一个函数。它是这样使用的:mysql_query('SQL QUERY');

它写在你的问题中是为了让它更具可读性:

if(!mysql_query(
'SQL QUERY'
))

也可以这样写:

if(!mysql_query('SQL QUERY'))

因此,要添加另一个子句,请在 mysql_query 调用之前或之后添加它。

if($tradein_status == 'Accepted CREDIT' && mysql_query('SQL QUERY'))

if 语句中,{} 可以省略。在这种情况下,如果情况属实,则下一行就是运行的那一行。

所以,最终确定:

if($tradein_status == 'Accepted CREDIT' && mysql_query('SQL QUERY')){
    die('Sorry, a database error occurred');
}

【讨论】:

  • 非常感谢!这行得通!非常感谢火箭
  • @TimDonahue:不客气 :-)
猜你喜欢
  • 2019-11-24
  • 1970-01-01
  • 2021-04-21
  • 2019-12-27
  • 2021-06-06
  • 1970-01-01
  • 1970-01-01
  • 2011-09-19
  • 1970-01-01
相关资源
最近更新 更多