【发布时间】:2011-04-30 18:46:43
【问题描述】:
我知道这对你们大多数人来说可能非常容易,但我刚开始学习 PHP 和 MySQL,而且我没有编程背景,所以请耐心等待。我正在尝试将以下内容插入数据库。
错误信息:
解析错误:语法错误,意外 T_VARIABLE 在 C:\wamp\www\coninsert.php 第 17 行
PHP 代码:
<?php
$db = mysql_connect("localhost", "algo","*****");
if (!$db)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("reno",$db);
$name=$_POST['nom'];
$address=$_POST['adresse'];
$city=$_POST['ville'];
$zip=$_POST['codepostal'];
$phone=$_POST['numtel'];
$email=$_POST['email'];
$travaux=$_POST['travaux']
$sql = "INSERT INTO piste(name, address, ville, zip, phone, email, travaux) VALUES ("$name","$address","$city","$zip","$phone","$email","$travaux")";
mysql_query($sql)
mysql_close($db)
?>
谢谢!
【问题讨论】:
-
示例代码易受SQL injection的攻击,这是一个非常严重的security risk。要修复这个漏洞,请从过时的 mysql 扩展切换到 PDO 并使用 prepared statements。如果您需要 PDO 教程,请尝试 "Writing MySQL Scripts with PHP and PDO"。您保存的网站可能只是您自己的。
-
此外,数据库连接应该由一个脚本中定义的函数或类创建,该脚本在其他脚本中使用。这样,数据库凭证就不会随意分散,这使得保护它们更容易。它还使您的数据库连接代码不易受拼写错误的影响。有关此站点上的最新示例,请参阅 PHP, Variable Scope Question。但是,不要将自己限制在这一页上;在网上搜索更多信息。
-
我尝试实现 scobal 的答案,错误更改为意外的 T_STRING。我不知道该怎么办:(