警告:mysqli_query()期望参数2是字符串,对象是给定的

时间:2014-01-22 14:15:17

标签: php forms edit

早上好!

我是PHP的新手。我正在努力让这项工作成为现实,但却向我展示了这个问题。它是修改mysql数据库中某些记录的格式。代码获取数据,但它显示我的错误,当我运行修改时,它显示了几个问题....

  

警告:mysqli_query()期望参数2为字符串,给定对象   在第15行的C:\ wamp \ www \ CTE \ formedicion.php

我仍然不知道如何解决它。我真的很乐意帮助你。

谢谢!

<body>

<?php

include "conexiondb.php";

if(!isset($_POST['submit'])){

//$busqueda=$con->query(    
$muestra=$con->query("SELECT * FROM clientes C INNER JOIN producto P ON C.serial  = P.serial WHERE P.serial = $_GET[serial]");

//mysqli_query($con,$sql);  
mysqli_query($con,$muestra);

$person=$muestra->fetch_array();
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">

  cliente<input type = "text" name="inputcliente" value = "<?php echo $person['cliente']; ?>" /><br/>

  cedula <input type = "text" name="inputcedula" value = "<?php echo $person['cedula']; ?>" /><br/>

<input type="hidden" name="serial" value="<?php echo $_GET['serial'];?>"/>
<input type = "submit" name = "submit" value= "Modificar"/>
</form>

  <?php
  if (isset($_POST ['submit'])){

$u = "UPDATE cliente SET'cliente'='$_POST[inputcliente]','cedula' = '$_POST[inputcedula]' WHERE serial=$_POST[serial]";
mysqli_query($con,$u);

echo "El usuario ha sido modificado";
header ("Location:busca.php");

} else {

      }

  ?>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

更改

$muestra=$con->query("SELECT * FROM clientes C 
INNER JOIN producto P ON C.serial  = P.serial WHERE P.serial = $_GET[serial]");

//更新以清理输入

$serial = mysqli_real_escape_string($con,$_GET[serial]) ;

$qry="SELECT * FROM clientes C 
INNER JOIN producto P ON C.serial  = P.serial WHERE P.serial = $serial";

然后

$ muestra = mysqli_query($ con,$ qry);

答案 1 :(得分:0)

阅读mysqli参考资料并从给出的错误中学习

你的错误是mysqli_query期望seconnd参数是一个字符串,但你没有给出 一个字符串变量作为参数。

mysqli_query($con,$query) $ query是字符串,$ con是对象。

你的解决方案是让$ muestra成为一个字符串。

$muestra="SELECT * FROM clientes C INNER JOIN producto P ON C.serial  = P.serial WHERE P.serial = $_GET[serial]";