Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.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和isset()_Php_Sql_Notice - Fatal编程技术网

php注意事项、sql和isset()

php注意事项、sql和isset(),php,sql,notice,Php,Sql,Notice,如何消除sql查询字符串中的apache/php消息“注意:未定义索引”: 使用@it works$query.=“哈希=”@$_获取['key']。"'"; 但对于isset(),它不会: $query.=“哈希=”!isset($\u GET['key'])。"'"; 在if条款中: 使用@it是有效的 if(@$\u GET['action']==“de”){ 但对于isset(),它不会: if(!isset($\u GET['action'])==“de”){ 感谢您的帮助在这种情况下

如何消除sql查询字符串中的apache/php消息“注意:未定义索引”:

使用@it works
$query.=“哈希=”@$_获取['key']。"'";

但对于isset(),它不会:
$query.=“哈希=”!isset($\u GET['key'])。"'";

在if条款中:

使用@it是有效的
if(@$\u GET['action']==“de”){

但对于isset(),它不会:
if(!isset($\u GET['action'])==“de”){


感谢您的帮助

在这种情况下,您能做的就是使用。只有在使用之后,才检查值:

if (array_key_exists('action',$_GET) && $_GET['action'] === "de") {
...
}
这样,如果第一个失败,第二个就不会被检查,你也不会得到通知


您应该不要在严重的代码中使用@

您应该尝试修复代码,而不是试图避免它。在尝试使用它之前,您应该始终检查值。即

if(!isset($_GET['key'])&&!empty($_GET['key'])){
    return 'action isnt set!';
};

@operator只是告诉解释器闭嘴,忽略不会使系统崩溃的错误。它给出的代码不稳定,不应该使用

函数返回
true
false
。您可以使用它来检查变量是否已声明并具有值。以下是您应该如何使用它:

$query .= "hash = '" . ( isset($_GET['key']) ? $_GET['key'] : '' ) . "'";
这意味着使用
$\u GET['key']
,如果它已声明且具有值,则使用默认值(“”)

有时,如果不提供任何内容,代码可以使用默认值运行。这是isset()的一种用法

在上面,我使用了一个简短版本的
if…else
。下面的两个语句是相同的:

// Short version ( TEST ? if TRUE : else FALSE )
$query = isset($_GET['key']) ? $_GET['key'] : '';

// Long version
if ( isset( $_GET['key'] ) )
    $query = $_GET['key'];
else
    $query = '';

与其试图消除该消息,不如尝试修复该问题:yi:
isset
return boolean,如果不按照Andrius在下面所说的做,就无法检查该消息是否已设置并包含“de”。这里的回答很好,非常有用,并且正在进行良好的练习,我非常喜欢这个问题!各位,你们非常棒,响应速度非常快,谢谢。你们永远不要使用@在严肃的代码中。这就是我问的原因。@使代码看起来既快又脏。在问题中,OP使用
如果(!isset($\u GET['action']==“de”)
,您的版本将不完整OP@SamSwift웃, 我只是泛泛而谈,对于这类问题没有具体的答案。甚至一个都没有。感谢所有的评论和建议。我现在明白应该如何使用它了。