2014-04-12 193 views
-1

我知道mysql是像雅虎oudated。 但是,我被要求修复朋友网站。所以首先,继承人的代码:PHP的MySQL更新不会更新

<?php 
$name = $_POST['name']; 
$kcid = $_POST['kcid']; 

$host="localhost"; // Host name 
$username="username"; // Mysql username 
$password="password"; // Mysql password 
$db_name="dbname"; // Database name 
$tbl_name="tablename"; // 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 lastname='$name' WHERE KcID='$kcid'"; 
$result=mysql_query($sql); 

// if successfully updated. 
if($result){ 
echo "Successful"; 
echo "<BR>"; 
} 

else { 
echo "ERROR"; 
} 

?> 

当我尝试运行它,它说SUCESSFUL但它不都 talbe编辑任何内容:

KcID | Kc | Lastname 

我希望有人为有一个解决方案。

请纠正我的代码,如果你看到的东西,使其无法工作

+1

检查$ name和$ kcid改进的扩展更新查询 –

+2

您的代码很容易受到MySQL的注射之前。在这里阅读http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php?rq=1,你也应该真正调试。什么地方出了错? – Fabio

+1

打印查询并手动执行。 – Alex

回答

0

尝试键入如下:

$sql="UPDATE {$tbl_name} SET lastname='{$name}' WHERE KcID='{$kcid}'"; 

没有支架,它无法理解的是“$ name”是一个PHP变量。

+0

这将导致错误 –

+0

所以试试这个:$ sql =“UPDATE”。$ tbl_name。“SET lastname ='”。$ name。“'WHERE KcID ='”。$ kcid。“ ““; –

0

某些更新我可以建议让你的代码有很多更好,更安全:

<?php 
    $name = $_POST['name']; 
    $kcid = $_POST['kcid']; 

    $host="localhost"; // Host name 
    $username="username"; // Mysql username 
    $password="password"; // Mysql password 
    $db_name="dbname"; // Database name 
    $tbl_name="tablename"; // Table name 

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

    // update data in mysql database 
    $sql=sprintf("UPDATE %s SET lastname='%s' WHERE KcID='%s'", $tbl_name, mysql_real_escape_string($name), mysql_real_escape_string($kcid)); 
    mysql_query($sql, $connection); 

?> 

我不知道,但我认为问题在于你的结果分配查询,而不是实际查询。试试这个解决方案,让我知道这是否成功。

0

试一试下面的代码包含mysqli的查询,而不是MySQL的是MYSQL

<?php 
$name = $_POST['name']; 
$kcid = $_POST['kcid']; 

$host="localhost"; // Host name 
$username="username"; // Mysql username 
$password="password"; // Mysql password 
$db_name="dbname"; // Database name 
$tbl_name="tablename"; // Table name 

// Connect to server and select database. 
$con = mysqli_connect("$host", "$username", "$password","$db_name")or die("cannot connect"); 


// update data in mysql database 
$sql="UPDATE $tbl_name SET lastname='$name' WHERE KcID='$kcid'"; 
$result=mysqli_query($con,$sql); 

// if successfully updated. 
if($result){ 
echo "Successful"; 
echo "<BR>"; 
} 
else { 
echo "ERROR"; 
} 

?>