如何在php mysql中更新if exist else insert
如果ID已经存在,我想更新我的数据库;如果ID不存在,则插入 process.php:如何在php mysql中更新if exist else insert,php,mysql,Php,Mysql,如果ID已经存在,我想更新我的数据库;如果ID不存在,则插入 process.php: $servername = "localhost"; $username = "root"; $password = ""; $dbname = "maindata"; // Create connection $conn = mysqli_connect($servername, $username, $password, $dbname); // Check connection if (!$conn)
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "maindata";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("<center>Connection failed: " . mysqli_connect_error() . "</center");
}
$id = $_POST['id'];
$aname = $_POST['aname'];
$xsummary = $_POST['xsummary'];
$sql=mysql_query("SELECT * FROM info WHERE ID = $id");
if (mysql_num_rows($sql) == $id)
{
$sql="update info set AccountName= '$aname', ExecutiveSummary='$xsummary'";
}
else {
$sql="insert into AccountName= '$aname', ExecutiveSummary= '$xsummary'";
}
$servername=“localhost”;
$username=“root”;
$password=“”;
$dbname=“maindata”;
//创建连接
$conn=mysqli\u connect($servername、$username、$password、$dbname);
//检查连接
如果(!$conn){
die(“连接失败:”.mysqli\u connect\u error()。“一切正常,需要更换
这个
if (mysql_num_rows() == $id)
{
$sql="update info set AccountName= '$aname', ExecutiveSummary='$xsummary'";
}
与
mysql_query($sql);
if (mysql_num_rows()>0)
{
$sql="update info set AccountName= '$aname', ExecutiveSummary='$xsummary' where ID= $id";
}
试着做这样的事情
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "maindata";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("<center>Connection failed: " . mysqli_connect_error() . "</center");
}
$id = $_POST['id'];
$aname = $_POST['aname'];
$xsummary = $_POST['xsummary'];
$sql=mysql_query("SELECT * FROM info WHERE ID = $id");
$result = mysqli_query($conn, $sql);
$count=mysql_num_rows($result);
if ($count > 0)
{
$sql="update info set AccountName= '$aname', ExecutiveSummary='$xsummary' where ID =".$id;
}
else {
$sql = "INSERT INTO info ('AccountName', 'ExecutiveSummary')
VALUES ('$aname', '$xsummary')";
}
$servername=“localhost”;
$username=“root”;
$password=“”;
$dbname=“maindata”;
//创建连接
$conn=mysqli\u connect($servername、$username、$password、$dbname);
//检查连接
如果(!$conn){
die(“连接失败:”.mysqli\u connect\u error()。“尝试以下代码
$sql = @mysql_query("SELECT * FROM info WHERE ID = $id");
$num_rows = @mysql_num_rows($sql);
if ($num_rows > 0) {
//update query
$sql="update info set AccountName= '$aname', ExecutiveSummary='$xsummary'";
} else {
//insert query
$sql = "INSERT INTO info ('AccountName', 'ExecutiveSummary')
VALUES ('$aname', '$xsummary')";
}
您可以在重复密钥更新时使用INSERT
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "maindata";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("<center>Connection failed: " . mysqli_connect_error() . " </center");
}
$id = isset($_POST['id']) && $_POST['id'] ? $_POST['id'] : 0;
$aname = $_POST['aname'];
$xsummary = $_POST['xsummary'];
$stmt=mysqli_prepare($conn, "INSERT into info (`ID`, `AccountName`, `ExecutiveSummary`)
VALUES (?, ?, ?)
ON DUPLICATE KEY UPDATE
`AccountName`=VALUES(`AccountName`),
`ExecutiveSummary`=VALUES(`ExecutiveSummary`)
");
mysqli_stmt_bind_param($stmt, 'iss', $id, $aname, $xsummary);
mysqli_stmt_execute($stmt);
$servername=“localhost”;
$username=“root”;
$password=“”;
$dbname=“maindata”;
//创建连接
$conn=mysqli\u connect($servername、$username、$password、$dbname);
//检查连接
如果(!$conn){
die(“连接失败:”.mysqli\u connect\u error()。“请查看以下代码
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "maindata";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("<center>Connection failed: " . mysqli_connect_error() . "</center");
}
$id = $_POST['id'];
$aname = $_POST['aname'];
$xsummary = $_POST['xsummary'];
$sql=mysqli_query($conn, "SELECT * FROM info WHERE ID = $id");
if (mysqli_num_rows($sql) > 0)
{
$sqlUpdate="update info set AccountName= '$aname', ExecutiveSummary= '$xsummary'";
mysqli_query($conn,$sqlUpdate);
} else {
$sqlInsert="insert into info set AccountName= '$aname', ExecutiveSummary= '$xsummary'";
mysqli_query($conn,$sqlInsert);
}
$servername=“localhost”;
$username=“root”;
$password=“”;
$dbname=“maindata”;
//创建连接
$conn=mysqli\u connect($servername、$username、$password、$dbname);
//检查连接
如果(!$conn){
die(“连接失败:”.mysqli_connect_error()。“出现警告错误:mysql_num_rows()需要1个参数,2个参数在C:\wamp64I中给出,请再次检查更新我的anwser。将出现3个错误警告:mysqli_query()需要至少2个参数,1个参数在C:\wamp64中以$sql=mysqli_query给出,警告:mysqli_query():C中的空查询在$result和警告中:mysqli_num_rows()期望参数1为mysqli_result,C中的布尔值在$count中给定有一个警告错误:mysql_num_rows()期望正好是1个参数,在C:\wamp64中给定2个更新的答案将解决此问题。@joneltimblacostill有3个错误警告:mysqli_query()需要至少2个参数,1个在C中以$sql=mysqli_查询形式给出,警告:mysqli_query()需要至少2个参数,1个在C中以mysqli_查询形式给出($sql);警告:mysqli_num_rows()需要正好1个参数,0在C中以if形式给出(mysqli_num_rowsError插入数据库。:INSERT into info----您的SQL语法有错误;请检查与您的MySQL服务器版本相对应的手册,以了解正确的语法ID是主键还是其他任何东西?$SQL=“INSERT into info AccountName='$aname',ExecutiveSummary='$xsummary'”;表名丢失表名为INFO有一个错误警告:mysqli_stmt_bind_param()要求参数1为mysqli_stmt,布尔值在mysqli_stmt_bind_param($stmt,$iss',$aname,$xsummary)中的C:\wamp64中给出;以及mysqli_stmt_execute($stmt);更新的代码…在绑定上添加了$id…有了这个警告,您需要对mysql连接进行故障排除…仍然有一个错误,-插入数据库时出错。:Query是空的-谢谢,更新正在工作,但是如果数据库上不存在id,sqlInssert就不工作了…向您致敬Hello Jonel,数据库中有一个错误sert声明,请更新,这将起作用。先生仍然没有工作插入我还添加了“设置”在AccountName之前…我认为$sqlInsert中缺少表名…但是我已经添加了表名,但仍然无法工作。你能给我一个关于如何使用INSERT IGNORE的示例吗?在重复键更新中…我只是php新手,仍然在看教程。你的代码很容易受到SQL注入攻击!永远不要使用用户无法生成SQL查询字符串。您应该改用预处理语句。我应该如何改进代码并忽略SQL注入攻击