2014-01-22 59 views
1
中給出的對象

早上好!警告:mysqli_query()期望參數2是字符串,在

我是PHP新手。我正在努力使這部分工作,但顯示我這個問題。它是一個修改mysql數據庫中的一些記錄的形式。該代碼獲取數據,但它讓我發現錯誤,當我運行修改它顯示了我好幾個問題....

警告:mysqli_query()預計參數2是在C中給出 字符串對象:\ wamp \ www \ CTE \ formedicion.php on line 15

我仍然不知道如何解決它。我真的很喜歡你的幫助。

謝謝!

<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> 
+3

**危險**:您很容易受到[SQL注入攻擊](http://bobby-tables.com/)**,您需要[防禦](http:// stackoverflow .com/questions/60174/best-way-to-prevent-sql -injection-in-php)自己從。 – Quentin

+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) ;

+0

使用'$ _GET [serial]'直接沒有任何轉義是非常不明智的想法 –

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]"; 
相關問題