PHP:准备好的语句新手遇到此错误

问题描述

| 我是刚准备好的报表的新手,并试图使工作变得简单。 这是我的数据库表:
`unblocker_users` (
  `uno` bigint(20) NOT NULL AUTO_INCREMENT,`user_email` varchar(210) DEFAULT NULL,`pw_hash` varchar(30) DEFAULT NULL,`email_confirmed` tinyint(4) DEFAULT NULL,`total_requests` bigint(20) DEFAULT NULL,`today_date` date DEFAULT NULL,`accessed_today` tinyint(4) DEFAULT NULL,)
这是我插入一些测试数据的功能
function add_new_user($e_mail1)
    {
    require_once \"db.PHP\";
// ####### Below line is giving an error ########
$stmt = $MysqLi->prepare(\"INSERT INTO unblocker_users VALUES (\"\",?,0)\");
$stmt->bind_param(\'sss\',$e_mail1,$this->genRandomString(1),$this->today_date()); 

$stmt->execute();

$stmt->close(); 
$done = $stmt->affected_rows;

return $done;
    }
如您在上面看到的,我已标记出给我一个错误的行。 错误
\" Parse error: Syntax error,unexpected T_CONSTANT_ENCAPSED_STRING in...\"
我哪里做错了?     

解决方法

        这条线可能引起问题
$stmt = $mysqli->prepare(\"INSERT INTO unblocker_users VALUES (\"\",?,0)\");
看到您关闭并再次打开值中的字符串,将
\"\"
更改为
\'\'
这就是我一眼就能看到的一切。     ,        您的\“带有双引号字符串。PHP认为
\"INSERT INTO unblocker_users VALUES (\"\",0)\"
是2个字符串:
\"INSERT INTO unblocker_users VALUES (\"
\",0)\"
但是您不想对他们做什么。 将外部引号更改为单引号,它应该可以工作:
\'INSERT INTO unblocker_users VALUES (\"\",0)\'
    ,        
\"INSERT INTO unblocker_users VALUES (\"\",0)\"
在php中,如果要在双引号中使用双引号,则必须转义内部的双引号
\"INSERT INTO unblocker_users VALUES (\\\"\\\",0)\"
或使用单引号作为外部...
\'INSERT INTO unblocker_users VALUES (\"\",0)\'
...或内引号
\"INSERT INTO unblocker_users VALUES (\'\',0)\"
据我所知mySQL反正使用单引号