Php Can';更新mySql数据库

Php Can';更新mySql数据库,php,mysql,Php,Mysql,请帮帮我,我是mySql新手。我正在尝试更新数据库,但它不起作用。我已经检查了代码,它似乎是正确的,但没有得到更新 <?php $host="localhost"; // Host name $username=""; // Mysql username $password=""; // Mysql password $db_name="test"; // Database name $tbl_name="test_mysql"; // Table name // Connect to

请帮帮我,我是mySql新手。我正在尝试更新数据库,但它不起作用。我已经检查了代码,它似乎是正确的,但没有得到更新

<?php
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="test_mysql"; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// update data in mysql database
$sql="UPDATE $tbl_name SET name='$name', lastname='$lastname', email='$email' WHERE id='$id'";
$result=mysql_query($sql);

// if successfully updated.
if($result){
    echo "Successful";
    echo "<BR>";
    echo "<a href='list_records.php'>View result</a>";
}

else {
    echo "ERROR";
}

?>

@Tamara:您没有获得/设置
$name
$lastname
$email
$id

如果id是
INT
(应该是),则不应使用单引号。这不适用于
INT
字段

考虑以下代码:

// sets the variables
$id = $_GET['id']; // lets assume you get the id with GET
$name = 'Some Name';
$lastname = 'Some Last Name';
$email = 'email@domain.com';

$sql="UPDATE ".$tbl_name." SET name='".$name."', lastname='".$lastname."', email='".$email."' WHERE id=".$id;

不要只说“错误”
——那没用。改为说类似于
echo mysql\u error()
,这将给出查询失败的确切原因。两件事:1)检查
$result
可能总是会返回肯定的答案。从
更新中返回的
对于PHP来说,无论成功与否都是一样的,除非它在MySQL中崩溃。2) 检查您是否确实有
id=$id
的记录。在此查询之前,您应该转储变量,以查看它们是否符合要求。在不了解数据库架构的情况下,我不确定我们可以如何帮助您。更新失败期间,
$tbl_name
$id
等变量中传递了哪些值?您是否检查过数据库本身中的数据没有更新,或者您是从
$result
推断出来的?只是一个猜测,但要快速检查:id=$id(数字)或id='$id'(字符)?如果它被引用,实际上仍然有效。问题很可能是数据库中没有id为“$id”
的行,因此不会更新任何内容,也不会出现错误。如果您通过
$\u POST['lastname']
等方式设置这些行,请尝试将
O'Neil
作为姓氏。尽可能经常使用PHP手册,并查找
mysql\u real\u escape\u string()
。你完全正确,我没有包括$id=$\u POST['id']$名称=$_POST['name']$lastname=$\u POST['lastname']$email=$_POST['email'];这就是它不起作用的原因。非常感谢。