表单页面 index.php<html>
<body>
<FORM METHOD=POST ACTION="read.php">
<tr><td>
id:<INPUT TYPE="text" NAME="userid" id=userid>
</td></tr>
<tr><td>
name:<INPUT TYPE="text" NAME="username" id=username>
<INPUT TYPE="submit"><INPUT TYPE="reset">
</td></tr>
</table>
</FORM>
</body>
</html>read.php 数据读出页面<html>
<body>
<?php$dbh = @mysql_connect("localhost:3306","root","198415");
if(!$dbh){die("error");}
@mysql_select_db("dl_db", $dbh);
$exec2="INSERT INTO `dl_file` ( `id` , `name` , `url` , `count` ) VALUES ('$_POST[userid]', '$_POST[username]', 'ddfgdfd.rar', '0')";
//$exec2 = "DELETE FROM `dl_file` WHERE CONVERT(`count` USING utf8) = '0' ";
$q = "SELECT * FROM dl_file";/* 定义变量q, "SELECT * FROM abc"是一个SQL语句,意思是读取表abc中的数据 */?>
<?php
@mysql_query($exec2, $dbh);
$rs = mysql_query($q, $dbh);while($row = mysql_fetch_object($rs)) echo $row->id . $row->name. "<br />";
?>
<?@mysql_close($dbh);/* 关闭到mysql数据库的连接 */?>
</body>
</html>
我想要问的是为什么"INSERT INTO `dl_file` ( `id` , `name` , `url` , `count` ) VALUES ('$_POST[userid]', '$_POST[username]', 'ddfgdfd.rar', '0')";
这句中$_POST[userid]userid没有加引号?不加引号我很难理解啊。
<body>
<FORM METHOD=POST ACTION="read.php">
<tr><td>
id:<INPUT TYPE="text" NAME="userid" id=userid>
</td></tr>
<tr><td>
name:<INPUT TYPE="text" NAME="username" id=username>
<INPUT TYPE="submit"><INPUT TYPE="reset">
</td></tr>
</table>
</FORM>
</body>
</html>read.php 数据读出页面<html>
<body>
<?php$dbh = @mysql_connect("localhost:3306","root","198415");
if(!$dbh){die("error");}
@mysql_select_db("dl_db", $dbh);
$exec2="INSERT INTO `dl_file` ( `id` , `name` , `url` , `count` ) VALUES ('$_POST[userid]', '$_POST[username]', 'ddfgdfd.rar', '0')";
//$exec2 = "DELETE FROM `dl_file` WHERE CONVERT(`count` USING utf8) = '0' ";
$q = "SELECT * FROM dl_file";/* 定义变量q, "SELECT * FROM abc"是一个SQL语句,意思是读取表abc中的数据 */?>
<?php
@mysql_query($exec2, $dbh);
$rs = mysql_query($q, $dbh);while($row = mysql_fetch_object($rs)) echo $row->id . $row->name. "<br />";
?>
<?@mysql_close($dbh);/* 关闭到mysql数据库的连接 */?>
</body>
</html>
我想要问的是为什么"INSERT INTO `dl_file` ( `id` , `name` , `url` , `count` ) VALUES ('$_POST[userid]', '$_POST[username]', 'ddfgdfd.rar', '0')";
这句中$_POST[userid]userid没有加引号?不加引号我很难理解啊。
在mysql中,除数字之外都要必须加引号,数字也可以加引号
<?php
$foo[bar] = 'enemy';
echo $foo[bar];
// etc
?>
这样是错的,但可以正常运行。那么为什么错了呢?原因是此代码中有一个未定义的常量(bar)而不是字符串('bar'-注意引号),而 PHP 可能会在以后定义此常量,不幸的是你的代码中有同样的名字。它能运行,是因为 PHP 自动将裸字符串(没有引号的字符串且不对应于任何已知符号)转换成一个其值为该裸字符串的正常字符串。例如,如果没有常量定义为 bar,PHP 将把它替代为 'bar' 并使用之。 注: 这并不意味着总是给键名加上引号。用不着给键名为常量或变量的加上引号,否则会使 PHP 不能解析它们。
<body><form action="insert.php" method="post">
Firstname: <input type="text" name="firstname" />
Lastname: <input type="text" name="lastname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form></body>
</html>
insert.php
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}mysql_select_db("my_db", $con);$sql="INSERT INTO person (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)
?>
你在看一下这个例子,这是我从书上找到的源代码,应该没有什么错误吧,还是没有加引号啊,我就是实验的这个例子,如果加上引号的话,就报错。