Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL检查空字段_Php_Mysql_Database_Pdo - Fatal编程技术网

Php SQL检查空字段

Php SQL检查空字段,php,mysql,database,pdo,Php,Mysql,Database,Pdo,已解决:我知道有些字段是空的,本应捕获检查,但它们是空的,而不是空的。所以,当我检查空字段时,它没有找到任何字段 我试图检查具有特定名称的行中的元素是否有任何空白字段。我使用它来查找是否有任何值为null,如果有,更新和行为null。但它不能正常工作。我相信我所有的列名都是正确的,但我看不出问题出在哪里。我的问题是: //this goes through each row 1 by 1 and checks if an element is null $stmt

已解决:我知道有些字段是空的,本应捕获检查,但它们是空的,而不是空的。所以,当我检查空字段时,它没有找到任何字段

我试图检查具有特定名称的行中的元素是否有任何空白字段。我使用它来查找是否有任何值为null,如果有,更新和行为null。但它不能正常工作。我相信我所有的列名都是正确的,但我看不出问题出在哪里。我的问题是:

    //this goes through each row 1 by 1 and checks if an element is null
            $stmt = $dbh->prepare("SELECT count(*) from csgo_item_list WHERE Item_Name =:itemname AND (Image_Link IS NULL OR Quantity IS NULL OR new_price IS NULL OR market_hash_name IS NULL OR last_update IS NULL OR is_tradable IS NULL OR old_price IS NULL OR item_type IS NULL OR skin_quality IS NULL OR skin_color IS NULL)");
//"$mydata->market_name" returns a valid name in the table
            $stmt->bindValue(':itemname', $mydata->market_name);
            $stmt->execute();
            $count = $stmt->fetchColumn();
            echo $count;
当我这样做时,有些行确实有一些空字段,但当我回显
$count
时,它只返回0。这意味着我不能更新我的行,因为在检查之后,我使用同一行进行
更新

if($count != 0){
$sql = $dbh->prepare("UPDATE csgo_item_list SET Quantity=:quantity, new_price=:newprice, Image_Link=:image_link, market_hash_name=:markethashname, last_update='1000-01-01 00:00:00', is_tradable='no', old_price=:oldprice, item_type=:type, , skin_quality=:skinquality, skin_color=:skincolor WHERE Item_Name=:itemname AND (Image_Link IS NULL OR Quantity IS NULL OR new_price IS NULL OR market_hash_name IS NULL OR last_update IS NULL OR is_tradable IS NULL OR old_price IS NULL OR item_type IS NULL OR skin_quality IS NULL OR skin_color IS NULL)");
我将发布我的数据库表的一个图像,尽管我已经检查了所有匹配的名称:

有人知道为什么这不起作用吗

“…但当我回显$count时,它只返回0。这意味着…”

如果($count!=0){….

如果它返回所有“0”,那么为什么要将“不等于”与0进行比较


如果($count==O){我想应该是

我知道有些字段是空的,应该会被检查到,但它们是空的,而不是空的。因此,当我检查空字段时,它没有找到任何字段

我要做的是将所有空列设置为NULL:

UPDATE `table` SET `column` = NULL;

您在查询中使用的保留字是
类型
。可能也是原因,您没有看到它的错误,因为您可能没有检查错误。添加
$dbh->setAttribute(PDO::ATTR\u ERRMODE,PDO::ERRMODE\u异常)
在连接打开后,您会看到语法错误。Ftr那些ORs很糟糕,应该会迫使您重新考虑您的架构设计。可能会有人根据我的评论给出答案。它每次都会咬我。所以换句话说,在该列周围使用勾号
`
,或者将其命名为r以外的名称保留word@MitchCool1太好了,米奇,很高兴听到这个消息。你知道,Stack让你发布你自己的答案。干杯并感谢更新。“如果($count=O){我想。”-你认为呢?你正在分配BTW请返回并重新阅读该问题。你的回答将导致一个分配,如@Fred ii-所说,并将始终计算为“真”。我检查count!=0以查看是否有空字段的命中率。如果不是0,则有空字段,然后我更新。抱歉,这是一个输入错误。好的,@Mitchcool注释所有行e“如果”条件,只回显某个内容并进行检查。这些单引号应为ticks
`
Mitch。键盘上数字1左边的字符。@Fred ii-哦,为什么?只是为了正确格式化此站点上的答案?引号或ticks在实际代码中使用。使用常规引号而不是一个滴答声,会向问答的访问者发出错误的信号,说明使用引号是有效的语法。使用引号会导致错误。最好显示实际的解决方案是什么。好的,这是有意义的。