使用PHP更新数据库中的表的正确语法

时间:2014-04-16 06:46:22

标签: php mysql

使用PHP进行连接时,更新表的正确语法是什么? 如果我手动更改Wamp服务器上的一行,它会显示:

UPDATE  `proyecto`.`labs` SET  `estado` =  '2' WHERE  `labs`.`idlab` =1;

但是我的代码上的快速Ctrl + C和Ctrl + V并没有做任何事情,也没有触发任何错误。 这里是我的PHP代码:

$db_hostname = 'localhost';
$db_database = 'XXX';
$db_username = 'XXX';
$db_password = 'XXX';

$db_server = db_init();

function db_init(){
 global $db_hostname,
 $db_database,
 $db_username,
 $db_password;

$db_server = mysql_connect($db_hostname, $db_username, $db_password);

if(!$db_server)
die ("Unable to connect with MySQL: " . mysql_error());

 mysql_select_db($db_database)
 or die ("Unable to connect with database " . mysql_error());

return $db_server;

}

function do_query($query){
global $db_server;

$result = mysql_query($query , $db_server);

if( !$result)
    die("Failed sentence: " . mysql_error());

    return $result;
}

这是我试图调用的函数,它是通过jQuery调用的,以防我在下面添加代码:

function labStatusEliminar(){

if(isset($_POST['pId'])){

    $idEliminar = $_POST['pId'];

    $query = "UPDATE bk.estado FROM labs as bk  WHERE  bk.idlab = $idEliminar";
 }
}

jQuery的:

$(".btnEliminar").click(function() {
  var idAttrE = $(this).attr('id');
  var idEliminar = parseInt(idAttrE.substring(12));

 var request = $.ajax({
  url: "includes/functionsLabs.php",
  type: "post",
  data: {

    'call': 'labStatusEliminar',
    'pId':idEliminar},

    dataType: 'html',

    success: function(response){
    $('#info').html(response);
    }
  });
});

2 个答案:

答案 0 :(得分:1)

您的UPDATE声明似乎缺少SET部分。

 $query = "UPDATE bk.estado FROM labs as bk  WHERE  bk.idlab = $idEliminar";

那应该是

 $query = "UPDATE labs SET estado=2 WHERE labs.idlab = $idEliminar";

我还建议您查看mysqli或PDO并使用预处理语句。您的代码目前容易受到SQL注入攻击。

答案 1 :(得分:1)

UPDATE的正确语法是:

UPDATE `table_name`
SET `column_name` = 'value', `column_name`='value'...
WHERE `column_name` = 'value'