PHP中SQL语句引号的问题

//插入数据库
$sql="INSERT `im_user`(`username`,`password`,`create_time`)
VALUES('{$username}','{$password}','{$_SERVER['REQUEST_TIME']}')";
$obj=mysqli_query($con,$sql);
这里运行时成功的,是我试了好几次才成功的,但是最后插入
'{$_SERVER['REQUEST_TIME']}',这里有两个引号'',都是单引号为什么不会受到影响的呢?谢谢回答。
阅读 3.9k
3 个回答

主要是因为你加了{},php的字符串中,如果变量外加了{}那么就代表大括号里边的东西会当做变量解析,省去了使用 . 语法连接的麻烦。

//先用一个变量存储时间
$time=$_SERVER['REQUEST_TIME'];
//插入数据库
$sql="INSERT im_user(username,password,create_time)
VALUES('{$username}','{$password}','{$time}')";
$obj=mysqli_query($con,$sql);

新手上路,请多包涵

$sql 是一个双引号字符串, PHP会解析其中的变量$_SERVER['REQUEST_TIME'],并替换成对应的值,这里的$_SERVER是一个数组,'REQUEST_TIME'是字符串类型的键.

//假设$_SERVER['REQUEST_TIME']}=1234, $username = 'admin', $password = 'admin' 那最后得到的$sql是
INSERT `im_user`(`username`,`password`,`create_time`) VALUES('admin','admin','a');
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题