2017-10-04 204 views
0

我想用mysqli_query使用UPDATE命令。代码运行时,我没有收到错误,mysqli_query返回null。我以前发现代码来测试函数调用是否成功,并且我的返回成功。但是,出于某种原因,我的SQL表中的值没有改变。我尝试用$ POSTR变量的整数代替测试目的,但它仍然不会改变。这里是我的代码:mysqli_query和UPDATE命令不起作用

<?php 

$response =array(); 

$con =new mysqli("localhost", "gs6", "gibson2010", "roomDB"); 
if(!$con): 
die('Connect Error (' . mysqli_connect_errno() . ') '. 
mysqli_connect_error()); 
endif; 

if(isset($_POST['R']) && isset($_POST['G']) && isset($_POST['B'])){ 
    $POSTR=$_POST['R']; 
    $POSTG=$_POST['G']; 
    $POSTB=$_POST['B']; 

    $result = mysqli_query("UPDATE `LEDstrip` SET `Value` = (int)'$POSTR' WHERE `Channel` = 'R'"); 

    $response["result"] = $result; 
} 
echo json_encode($response); 
exit(); 
?> 

我该如何解决这个问题?

+0

'(INT)'$ POSTR''貌似无效的SQL语法。你为什么试图在查询中将它强制转换为int,而不是仅仅使用绑定参数? – rickdenhaan

+0

好点。所以我刚刚做的是在mysqli_query命令之前创建一个变量$ INTR =(int)$ POSTR。然后我用'$ INTR'替换了无效部分。它仍然没有改变数据库中的值。 –

回答

0

问题似乎是与查询 而不是使用(int)查询与变量一样使用它:$POSTR=(int)$_POST['R'];

你也呼吁mysqli_query错误。你必须调用$ CON组> query()方法

您的代码将是:

$POSTR=(int)$_POST['R']; 
$POSTG=$_POST['G']; 
$POSTB=$_POST['B']; 

    $result = $con->query("UPDATE `LEDstrip` SET `Value` = '$POSTR' WHERE `Channel` = 'R'"); 
+0

刚刚尝试过这种方式,但它的值仍然没有改变。 –

+0

我改变了我原来的答案。请检查并让我知道这是否工作 –

+1

这工作。我猜mysqli_query需要数据库连接参数。谢谢! –