草庐IT

g_null_acl

全部标签

mysql - SELECT NULL, *, NULL, NULL 中的混淆 SQL 错误

背景我试图解决fourthrealisticmission在hackthissite.org中,无法弄清楚我应该在URL中注入(inject)什么SQL来检索电子邮件列表。浪费了几个小时,我放弃了,看asolution,它给出了这行有趣的代码,它将在选择查询之后注入(inject):UNIONALLSELECTNULL,*,NULL,NULLFROMemail我明白这是做什么的,为什么;黑客需要创建一个查询,该查询的列数与要合并的查询的列数相同,并围绕*移动以确保显示电子邮件。那不是我的问题。问题我的问题是为什么该代码会在MySQL中引发语法错误。在做了一些测试之后,我发现这显然是一个

mysql - 比较 MYSql 中的 NULL 值

我在where子句中有一个条件,例如:LocationId=IFNULL(LocId,LocationId)此处LocId为NULL,因此通过IFNUll其返回的LocationId也为Null,在这种情况下此查询未返回任何内容。请告诉我解决方案。 最佳答案 您可以使用nullsafecomparison运算符(operator):LocationIdIFNULL(LocId,LocationId)常规=运算符的区别在于null值不被视为特殊值,例如如果左右参数均为null,它将产生1。另见thisanswer更多示例。

php - 如何在查询中用 0 替换 NULL?

我有这个问题:$db->prepare("UPDATEusersSETreputation=reputation+(CASEWHENid=?THEN2WHENid=?ANDNOT?THEN15END)WHEREidIN(?,?);")->execute(array($author_ques_id,$author_ans_id,$isOwnAnswer,$author_ans_id,$author_ques_id));请关注这一行:WHENid=?ANDNOT?THEN15END)当NOT?是false(换句话说$isOwnAnswer=true),reputatuin的值对于这样的用户

python - 将 NULL 值插入 double 据类型 MySQL Python

我有一张table。这是创建语句。CREATETABLE`runsettings`(`runnumber`mediumint(9)NOTNULL,`equipment`varchar(45)NOTNULL,`wafer`varchar(45)NOTNULL,`settingname`varchar(100)NOTNULL,`float8value`doubleDEFAULTNULL,`apcrunid`varchar(45)DEFAULTNULL,`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`intvalue`int(11)DEFAULTNULL,

PHP MariaDB 插入 NULL 值不起作用

使用PHP版本7.1.9,MariaDB10.1.26。我正在向MySQL数据库提交表单数据,我的值之一是NULL但在数据库中它是空的。我已确保我的数据库表设置为;允许null=是默认-空我的代码如下(请忽略任何安全漏洞,这是简化的代码);$id=$_POST['id'];$name=$_POST['name']?$_POST['name']:NULL;$sql="INSERTINTOstaff(id,name)VALUES('".$id."','".$name."')//queryrunsandinsertssuccessfully当我var_dump($name)我得到NULL时,

mysql - "select count(null)"和 "select count(1)"之间的区别

在MySQL中Select1frommytable和selectnullfrommytable两者都返回相同的行数。虽然selectcount(1)frommytable返回行数,而selectcount(null)frommytable总是返回0。为什么? 最佳答案 COUNT返回非NULL值的数量,这就是它为NULL返回0的原因。 关于mysql-"selectcount(null)"和"selectcount(1)"之间的区别,我们在StackOverflow上找到一个类似的问题:

.NET 和 MySql 参数,AddWithValue NULL 变量,如何避免检查空值

假设我有一个MySql存储过程,它插入一条包含一些可为空的CHAR字段的记录。在VB.NET中,如果我不检查Nothing(或其他语言中的Null),我会从db驱动程序中得到一个异常,所以我写:command.CommandType=CommandType.StoredProcedure;command.Parameters.AddWithValue("_name",if(nameIsNothing,"",name)).Direction=ParameterDirection.Input;这是我不喜欢的第一件事;我想传递Nothing并且驱动程序知道它必须将NULL放入Db中。但是,在

mysql - 如果 "Subquery returns more than 1 row"认为它是 NULL

我正在尝试将新表上的商店ID与此处主表中的ID同步:UPDATEnewtabletSETt.store_id=(SELECTstore_idFROMmaintablesWHEREt.state=s.stateANDs.city=t.cityANDt.name=s.name)每当子查询返回多于一行时,它就会出错并显示“子查询返回多于1行”,但是当它返回零行时,子查询被认为没有返回任何内容,因此newtable上的store_id保持为NULL。这里没有什么新东西,这就是它的工作原理。我想知道是否有可能让子查询在有多个匹配行时输出与没有匹配时相同的输出。这样一来,我将只为主表上的一个匹配行

mysql - 为什么这个 MySQL 日期转换返回 NULL?

尝试将日期格式转换为MySQL日期:SELECTSTR_TO_DATE('8/3/201113:30','%m/%d/%Y%h:%i');但它返回NULL。请注意,此类似查询有效:SELECTSTR_TO_DATE('8/3/201113:30','%m/%d/%Y'); 最佳答案 %h需要从01到12的数字。13无效。请尝试使用%H或%k。它们适用于24小时制。 关于mysql-为什么这个MySQL日期转换返回NULL?,我们在StackOverflow上找到一个类似的问题:

php - PHP 中的 !is_numeric 函数不接受 NULL VALUE

我正在尝试验证某个输入,其中用户只能输入整数值...否则将执行错误消息$user_mcc=$_REQUEST['mobile_countrycode'];if($user_mcc==""){is_numeric($_REQUEST['mobile_countrycode']);}if(!is_numeric($_REQUEST['mobile_countrycode'])){echo'alert("Notanumericvalue!\n\nMakesurethatyourcountrycodes,areacodes\nandmobile/fax/phonenumbersarecorre