草庐IT

if-else-statement

全部标签

php - MySQLi PHP : Check if SQL INSERT query was fully successful using MySQLi

我有一个大函数,可以获取大量不同的数据并将其插入多个表中。并非所有数据都始终可用,因此并非所有SQLINSERT查询都成功。我需要检查哪个SQLINSERT查询完全成功,哪个没有对这些数据执行某些操作(比如插入日志表或类似的)。只是举个例子说明我认为如何做到这一点:$sql='INSERTINTOdata_table(ID,column1,column2)VALUES(?,?,?)';if($stmt->prepare($sql)){$stmt->bind_param('iss',$varID,$var1,$var2);if($stmt->execute()){$success==TR

mysql - mysql中如何写IF语句

我有一个包含type字段的表。如何检查查询中的这个字段:我想检查它是否type=='a'然后bes=amount,bed='-'ELSE床=数量,bes='-'bes和bed在我的表中并不存在,但数量是(int)这是我的尝试:SELECTbilling.*,CASEbilling.typeWHEN'A'THENbilling.amountASbes,'-'ASbedELSEbilling.amountASbed,'-'ASbesENDFROMbilling...我的搜索没有用任何解决方案... 最佳答案 您可以为每一行创建条件,My

mysql - 如何在mysql中使用带左连接的if条件

我有下面的表格,它们像这样相互连接Info_Table->RoomGuests_Table->ChildAge_Table这些是表格Info_Table+---------------------------+|ID|Name|Rooms|+---------------------------+|INFO1|ABC|2||INFO2|DEF|1||INFO3|GHI|3|+---------------------------+RoomGuests_Table+-----------------------------------+|ID|R_ID|Adult|Child|+----

mysql: 撤销权限 "if exists"?

在脚本中,我想确保mysql用户对特定数据库没有任何权限。所以我这样做:revokeallprivilegeson`testdb`.*from'testuser'@'%'但是如果用户对该数据库没有任何权限,我会得到这个错误:Thereisnosuchgrantdefinedforuser'testuser'onhost'%'什么是绝对正确的,但我的脚本现在抛出错误并停止。我不想让我的脚本忽略此语句中的所有错误。有没有类似的东西revokeallprivilegesifexist...我在mysql手册中找不到任何相关内容。 最佳答案

php - mysql prepared statements中的绑定(bind)过程

众所周知,准备好的语句可以很好地防御SQL注入(inject)攻击。有人能解释一下绑定(bind)过程中发生了什么吗?我的主要困惑源于语句使用占位符并且这些占位符被变量替换的事实。因此,如果变量包含恶意sql,那么它们仍然会代替占位符进行绑定(bind)? 最佳答案 不,绑定(bind)过程确保绑定(bind)值与进入数据库的值1:1匹配。所以,'xxx;删除表yyy;'作为一个值将是varchar字段中的实际值。当不使用参数绑定(bind)时,将执行此代码。 关于php-mysqlpr

带有if语句的MySQL存储过程

我在MySQL中有以下存储过程SELECT*FROMrewardsLEFTJOINtasksONtasks.id=rewards.task_idANDrewards.received_at=received_DateWHEREtasks.kid_id=kid_IdORDERBYtasks.idASC;存储过程有2个(IN)输入,kid_Id(整数)和received_Date(日期),并且工作正常。问题:我想要的是,如果received_Date是NULL那么我想查看所有日期,这可能吗?换句话说:ANDrewards.received_at=received_Date只有在我通过rec

mysql - mysql中CASE和IF有什么区别

我发现了非常奇怪的MySQL行为:我有一个带有变音字母的字符串,我在上面运行了一些IF表达式。像这样的东西:IF(length(field)"))它工作正常。但是,如果我用CASE替换这个if,那么结果会在第一个unlaut字母处被截断!CASEWHENlength(field)")END另外,我注意到只有当查询中也有GROUPBY部分时才会发生这种情况。我无法理解CASE和IF之间的区别-从逻辑的角度来看,两者应该返回完全相同的结果。有人知道为什么这两个命令有区别吗? 最佳答案 "IF是单个fork,"CASE"可以是多个如果您有

mysql - MySQL 中 IF 语句的正确语法是什么?

我有一个小而简单的MySQL代码。但是每当我运行它时,我都会收到错误#1064。你能告诉我我的错误是什么吗?IF((SELECTCOUNT(id)FROMtbl_states)>0)THENBEGINSELECT*FROMtbl_cities;ENDENDIF我还使用了一些其他条件,例如下面的条件,但我再次遇到错误。IF(1=1)THENBEGINSELECT*FROMtbl_cities;ENDENDIF我真正想做的是这样的:IF((SELECTCOUNT(id)FROMtbl_states)>0)THENBEGINUPDATE...ENDELSEBEGININSERT...ENDE

mysql - MySQL 的 IF() 函数的标准方法

我找到了MySQL'sIF()function非常有用,它为我提供了一种执行条件聚合函数的有效方法,如下所示:SELECTSUM(IF(`something`='a',`something_weight`,0))AS`A`,SUM(`something_weight`)AS`All`FROM...据我了解,此功能是MySQL的一个特性,在使用SQL的数据库中一般不可用。是否有更标准的方法在数据库方面实现此功能? 最佳答案 我不是sql大师,而是case语句http://dev.mysql.com/doc/refman/5.0/en/

mysql - SQL中where子句中的IF语句

我正在开发一个日历应用程序。它以两种格式存储时间。该表具有以下列title、startDate、startTime。如果用户提供开始时间加上开始日期。数据库在startTime列中存储UNIX时间戳(自UNIXepok以来的秒数),而startDate为NULL。如果用户只提供开始日期,数据库将以nnnn-mm-dd格式存储日期到startDate中,将NULL格式存储到´startTime`.我有这个数据库结构,因为它更容易显示世界各地的时间,因为不同的时区有不同的夏令时。我想选择在指定日期之后发生的事件。客户端计算机向服务器提供当天开始的UNIX时间戳($unix)和格式为nnnn