php中sql语句的单引号双引号用法,很费解,请给讲解一下

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("my_db", $con);

$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";//这里变量为什么用单引号引用
// 我把单引号去掉 程序是错误的

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con)
?>

$sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

单引号表示字符串啊,sql语句里字符串都是要单引号的,至于外面的双引号只是为了内部的函数执行做铺垫的。

$a = 1;
echo '$a';   =>    $a
echo "$a"    =>    1
现在明白了么;

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-08
其实很简单,只要是sql语句里面的接受传过来的值得时候统一用这样的方式就不会有什么错误的
例如:$sql="INSERT INTO `Persons` (`FirstName`, `LastName`, `Age`)
VALUES
("'.$_POST[firstname].'"',"'.$_POST[lastname].'","'.$_POST[age]').'"";
就是列明还有数据表名都加反引号,$_POST[firstname]这种的呢都是
双引号 单引号 点 $_POST[firstname] 点 单引号 双引号,首先sql语句必须是双引号即
$sql=" ";这种格式的。本回答被网友采纳
第2个回答  2019-04-01
loginname
指的就是一个变量名<与数据库里的字段匹配>,
而'"+login1.username+"'
就是你输入的值,
假如只有单引号,系统会认为变量就是login1.username,
而这个值是固定的,然而我们需要的是一个变量,
所以就得再加一个双引号,
至于
‘+’
就是连接字符串的意思、、、
第3个回答  推荐于2018-05-13
$sql = "INSERT INTO Persons (FirstName, LastName, Age) VALUES ('{$_POST['firstname']}','{$_POST['lastname']}','{$_POST['age']}')";

看下这种写法比较好理解本回答被网友采纳

Warning: Invalid argument supplied for foreach() in /www/wwwroot/aolonic.com/skin/templets/default/contents.html on line 45
相似回答