我有mysqli的命令,它提供錯誤消息未知列在 'rates_test' 'where子句'
未知列 'rates_test' 在 'where子句'
$result1 = mysqli_query($con,"UPDATE Custom_Rates SET UserID=$id WHERE TableName =" . $assigntable);
$id
下面是另一個查詢返回的數字
$assigntable
是一個字符串傳遞給上述查詢所在的函數,但基本上是
$assigntable = array_search('Assign', $_POST);
所以會有價值rates_test
我不知道是什麼是錯的查詢語法,什麼是更奇怪,如果我將其更改爲
$result1 = mysqli_query($con,"UPDATE Custom_Rates SET UserID=$id WHERE TableName ='$assigntable'");
哪是我試過的東西之一,我得到
「字段列表」中的未知列'Array'
$string = "UPDATE Custom_Rates SET UserID=$id WHERE TableName =".$assigntable;
輸出
UPDATE Custom_Rates SET用戶ID =陣列,其中表名= rates_test
$string = "UPDATE Custom_Rates SET UserID=$id WHERE TableName ='" . $assigntable . "'";
輸出
UPDATE Custom_Rates SET用戶ID =陣列,其中表名= 「利率_test」
將查詢放入字符串中。然後在變量替換之後打印出字符串。 99%的時間,當你正確調試它時,問題很明顯。 –
僅僅因爲你已經將'mysql_'改爲'mysqli_',它不能解決安全問題。你仍然在SQL中注入變量意味着你很容易受到攻擊。 – h2ooooooo
向我們展示$ id是如何形成的。 – Mihai