Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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
mysql不断给出sql语法错误 //数据库类 类dbmgmt{ 公共$tbl_名称; 公共$field_arr; 公费$val_arr; 公共资源$cond_arr; 函数执行($sql){ 全球$conn; $result=$conn->query($sql); 如果(!$result)回显“错误:.$conn->错误; } 函数插入(){ $sql=“插入到“$this->tbl_name.”集合中”; 对于($i=0;$i++;$i字段\u arr)){ 如果($i!=(计数($this->field_arr)-1)){ $sql.=$this->field_arr[i]。“=”$this->val_arr.,”; }否则{ $sql.=$this->field\u arr[i]。“=”$this->val\u arr; } } $this->execute($sql); } } $ado=new dbmgmt(); //admin_add.php $ado->tbl_name=“tbl_admin”; $ado->field_arr=array(“用户名”、“密码”、“类型”、“电子邮件”); $ado->val\u arr=array($username,create\u hash($password),$admin\u type,$email); $ado->insert(); 如果($conn->connect\u错误){ die(“添加记录失败:“.$conn->connect\U errno.”.$conn->connect\U error); }否则{ echo“成功添加记录”; echo“window.location=“.ADMIN_PAGE.”; }_Php_Mysql - Fatal编程技术网

mysql不断给出sql语法错误 //数据库类 类dbmgmt{ 公共$tbl_名称; 公共$field_arr; 公费$val_arr; 公共资源$cond_arr; 函数执行($sql){ 全球$conn; $result=$conn->query($sql); 如果(!$result)回显“错误:.$conn->错误; } 函数插入(){ $sql=“插入到“$this->tbl_name.”集合中”; 对于($i=0;$i++;$i字段\u arr)){ 如果($i!=(计数($this->field_arr)-1)){ $sql.=$this->field_arr[i]。“=”$this->val_arr.,”; }否则{ $sql.=$this->field\u arr[i]。“=”$this->val\u arr; } } $this->execute($sql); } } $ado=new dbmgmt(); //admin_add.php $ado->tbl_name=“tbl_admin”; $ado->field_arr=array(“用户名”、“密码”、“类型”、“电子邮件”); $ado->val\u arr=array($username,create\u hash($password),$admin\u type,$email); $ado->insert(); 如果($conn->connect\u错误){ die(“添加记录失败:“.$conn->connect\U errno.”.$conn->connect\U error); }否则{ echo“成功添加记录”; echo“window.location=“.ADMIN_PAGE.”; }

mysql不断给出sql语法错误 //数据库类 类dbmgmt{ 公共$tbl_名称; 公共$field_arr; 公费$val_arr; 公共资源$cond_arr; 函数执行($sql){ 全球$conn; $result=$conn->query($sql); 如果(!$result)回显“错误:.$conn->错误; } 函数插入(){ $sql=“插入到“$this->tbl_name.”集合中”; 对于($i=0;$i++;$i字段\u arr)){ 如果($i!=(计数($this->field_arr)-1)){ $sql.=$this->field_arr[i]。“=”$this->val_arr.,”; }否则{ $sql.=$this->field\u arr[i]。“=”$this->val\u arr; } } $this->execute($sql); } } $ado=new dbmgmt(); //admin_add.php $ado->tbl_name=“tbl_admin”; $ado->field_arr=array(“用户名”、“密码”、“类型”、“电子邮件”); $ado->val\u arr=array($username,create\u hash($password),$admin\u type,$email); $ado->insert(); 如果($conn->connect\u错误){ die(“添加记录失败:“.$conn->connect\U errno.”.$conn->connect\U error); }否则{ echo“成功添加记录”; echo“window.location=“.ADMIN_PAGE.”; },php,mysql,Php,Mysql,我不断地发现这个错误: 错误:您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取第1行“”附近要使用的正确语法 我做错了什么?您的for循环中有一个问题: //database class class dbmgmt{ public $tbl_name; public $field_arr; public $val_arr; public $cond_arr;

我不断地发现这个错误:

错误:您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取第1行“”附近要使用的正确语法


我做错了什么?

您的for循环中有一个问题:

//database class    
class dbmgmt{
            public $tbl_name;
            public $field_arr;
            public $val_arr;
            public $cond_arr;

            function execute($sql){
                global $conn;
                $result=$conn->query($sql);
                if(!$result) echo "Error: ".$conn->error;
            }
            function insert(){
                $sql="INSERT INTO ".$this->tbl_name." SET ";

                for($i=0;$i++;$i<count($this->field_arr)){
                    if($i!=(count($this->field_arr)-1)){
                        $sql.=$this->field_arr[i]."=".$this->val_arr.",";
                    }else{
                        $sql.=$this->field_arr[i]."=".$this->val_arr;                   
                    }
                }

                $this->execute($sql);   
            }
    }

    $ado=new dbmgmt();

//admin_add.php
$ado->tbl_name="tbl_admin";
$ado->field_arr=array("username","password",'type','email');
$ado->val_arr=array($username,create_hash($password),$admin_type,$email);
                $ado->insert();
                if($conn->connect_error){
                    die("Failed to add Record: ".$conn->connect_errno. ' '.$conn->connect_error);
                }else{

                    echo "Succesfully Added Record";
                    echo "<script>window.location=".ADMIN_PAGE."</script>";
                }
($i=0;$i++;$ifield\u arr))的
{
如果($i!=(计数($this->field_arr)-1)){
$sql.=$this->field_arr[i]。“=”$this->val_arr.,”;
}否则{
$sql.=$this->field\u arr[i]。“=”$this->val\u arr;
}
应在结束标准后与计数器一起

for($i=0;$i++;$i<count($this->field_arr)){
                    if($i!=(count($this->field_arr)-1)){
                        $sql.=$this->field_arr[i]."=".$this->val_arr.",";
                    }else{
                        $sql.=$this->field_arr[i]."=".$this->val_arr;                   
                    }
($i=0;$ifield\u arr;$i++)的
{
如果($i!=(计数($this->field_arr)-1)){
$sql.=$this->field_arr[i]。“=”$this->val_arr.,”;
}否则{
$sql.=$this->field\u arr[i]。“=”$this->val\u arr;
}

一个问题是您需要引用字符串值:

for($i=0;$i<count($this->field_arr;$i++)){
                    if($i!=(count($this->field_arr)-1)){
                        $sql.=$this->field_arr[i]."=".$this->val_arr.",";
                    }else{
                        $sql.=$this->field_arr[i]."=".$this->val_arr;                   
                    }

需要使用
mysqli\u real\u escape\u string()
或类似的方法对值进行转义。在执行查询之前,查询是什么样子的?您正在使用
SET
编写
INSERT
查询?它是否正确
SET
可以用于
INSERT
回显给我这个“INSERT-INTO-tbl\u管理集”今天下午我可能会喝咖啡,只是为了让我保持水分@Fred-ii-我猜他可能也需要用引号括起他的值,但我的php非常生疏。
$sql.=$this->field_arr[i]."=\"".$this->val_arr."\"";