Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php mysql中更新if exist else insert_Php_Mysql - Fatal编程技术网

如何在php mysql中更新if exist else insert

如何在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)

如果ID已经存在,我想更新我的数据库;如果ID不存在,则插入

process.php:

$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注入攻击