我是php的新手。
通常我的更新查询正常工作,只有在此块中导致查询失败,我从之前确定的$_SESSION[id]
获得官员值,并从之前的表单获得contact_id
。
请帮忙......
<?php
$server="localhost";
$db_user="root";
$pass="h6194v";
$db="my_db";
$koneksi=mysql_connect($server,$db_user,$pass)
or die ("Connection Error!!");
$dateline=date("Ymd");
$query="UPDATE `contact` SET `date`=\'$dateline\', `officer`=\'$_SESSION[id]\' WHERE `contact_id`=\'$_POST[no]\'";
$result=mysql_query($query) or die ("Query fail");
?>
答案 0 :(得分:2)
首先
请不要将mysql_ *函数用于新代码。它们已不再维护,社区已开始deprecation process。请参阅red box?相反,您应该了解prepared statements并使用PDO或MySQLi。如果您无法决定,this article将有助于选择。如果您需要学习,请good PDO tutorial。
除此之外,如果你使用mysql:
mysql_select_db($db,$koneksi)
建立连接后选择数据库,或者在UPDATE语句中使用表名前面的数据库名称,如UPDATE my_db.contact ...
date('Y-m-d')
的正确格式,或者更好地完全放弃,并在UPDATE语句中使用NOW()
答案 1 :(得分:0)
我格式化了你的查询并尝试了这个。
$query="UPDATE `contact` SET `date`='{$dateline}', `officer`='{$_SESSION['id']}' WHERE `contact_id`='{$_POST['no']}'";
注意:不要使用MySQL函数,不推荐使用它们而是使用PDO或MySQLi函数。您的代码是开放的SQL注入尝试添加验证或使用预处理语句来保护。
答案 2 :(得分:0)
试试这个 -
$query="UPDATE `contact` SET `date`='".$dateline."', `officer`='".$_SESSION['id']."' WHERE `contact_id`='".$_POST['no']."'";
但在使用查询或任何地方之前验证$_POST
或$_GET
。
答案 3 :(得分:0)
了解你会遇到什么样的错误会有所帮助。
您需要使用引号访问数组:$ _SESSION ['id'],$ _POST ['no']
答案 4 :(得分:-1)
像这样更改您的update
查询
$query="UPDATE `contact` SET `date`='".$dateline."', `officer`='".$_SESSION[id]."'
WHERE `contact_id`=".$_POST[no];
如果contact_id
是字符串,请执行此操作
$query="UPDATE `contact` SET `date`='".$dateline."', `officer`='".$_SESSION[id]."'
WHERE `contact_id`='".$_POST[no]."'";