2013-03-02 46 views
-9

錯誤:警告:請求mysql_query()預計參數1是串,資源在C中給出:\瓦帕\ WWW \ cdij \ editquantity.php第8行警告:請求mysql_query()預計參數1是串

這裏是代碼:

<?php 
$con=mysql_connect("localhost","root","","test"); 
$quantity=$_POST['txt_quantity']; 
$name=$_POST['Fields']; 
$table=$_POST['editwhat']; 

$que="UPDATE `material` SET `material_quantity`='".$quantity."' WHERE `material_name`='".$name."'"; 
mysql_query($con,$que); 
mysql_close($con); 
?> 
+2

你需要檢查http://php.net/manual/en/function.mysql-query.php,你會發現你的答案(這是你的$ con和$ que是錯誤的方式。當你遇到這樣的錯誤時,你應該經常檢查該函數的PHP頁面,看看你是否正確使用了它。 – niaccurshi 2013-03-02 13:48:33

+2

當你閱讀文檔時,請注意你應該從'mysql_ *函數是完全的,因爲它們正在被棄用,使用PDO或'mysqli_'代替**你的代碼很容易受到SQL注入攻擊** – 2013-03-02 13:50:35

回答

1

您需要交換$ CON和$闕paramters在你的mysql_query功能。

http://php.net/manual/en/function.mysql-query.php

+0

我做過了,但是現在的值沒有更新到該表中,material_quantity列的數據類型是整數 – 2013-03-02 13:58:03

+0

這是一個不同的問題,也許你需要看一看變量的質量進入您的代碼。對於調試,您應始終首先使用「echo $ que」來顯示查詢字符串的外觀,並將其與您的數據庫進行比較。 – niaccurshi 2013-03-02 14:00:26

+0

UPDATE'material' SET'material_quantity' ='102'WHERE'material_name' = 'Hoses1'..得到這個作爲輸出。與我上面發佈的代碼相同。但不會更新到數據庫中。 – 2013-03-02 14:10:53

0

這可能意味着你沒有連接到你的數據庫。檢查憑證,並添加一個測試

if($con) 
    { 
    $mysql_query($que); 
    } 
    else 
    { 
    echo "connection error"; 
    } 
+0

錯誤信息是相當有用的,而不是這樣做的。如果你看到一些說「參數1預計會是...」,那麼這意味着你在位置1發送了錯誤類型的參數。 – niaccurshi 2013-03-02 13:51:20

+0

實際上它並不完全不相關 - 因爲錯誤的參數連接n失敗並且$ con不包含有效的連接。這就是我的檢查憑證。 $ con的有效性測試總是一個好主意 – 2013-03-02 19:24:10

1

您正在使用mysqli_query語法,但使用的mysql_query! 這個錯誤的最好的部分是,你需要升級到mysqli_query,你已經到了一半,這真是太棒了。

mysql_query被刪除。檢查這個link,你在那裏。乾杯

相關問題