我對INSERT SQL語句有問題。它什麼都不做! (並沒有顯示任何錯誤)。 當我印刷$ qry時,它看起來很好。 可能是什麼問題? 這是代碼:INSERT語句不工作! (PHP + MYSQL)
<?php
include('conn.php');
$result=mysql_query("SET NAMES utf8 COLLATE utf8_general_ci",$mysql_link);
$result=mysql_query("SELECT * FROM users where userID=".$_SESSION['IDENT'],$mysql_link);
if (!$result)
{
echo "ERROR: error occured in MySQL query.";
}
else
{
if(mysql_num_rows($result)==1)
{
//This will be shown only to registered users.
while ($row=mysql_fetch_array($result))
{
if (($row['userRank']==100)||($row['userRank']==10))
{
$qry="INSERT INTO users (NickName, username, userpass, userEmail, userRank, userOOlamR, userPhone, userPhone2, userStr, userCity, userMikud, userOOlamID) VALUES ('" . $_POST['nname'] . "', '" . $_POST['username'] . "', '" . md5($_POST['userpass']) . "', '" . $_POST['email'] . "', 2, 1, '" . $_POST['cellphone1'] . "', '" . $_POST['cellphone2'] . "', '" . $_POST['street'] . "', '" . $_POST['city'] . "', " . $_POST['mikud'] . ", " . $_POST['oolam'] . ")";
$res=mysql_query($qry ,$mysql_link);
?><div align="center">
<table width="50%" height="20%" style="Border-Style:dotted;Border-Width:1px;Border-Color:a01220;background-color: rgba(190, 200, 230, 0.5);">
<td><div align="Center"><font face="Arial" size="2" color="Black"> SUCCESS!<br></div></td>
</table>
</div><div align="left">
<?php
echo $qry; ?>
</div><?php
}
Else
{
//SECURITY
}
}
}
}
include('cconn.php');
?>
問題是我在,我沒有在我的INSERT語句把所有的表中的另一領域。
您的縮進樣式是可怕的。將大括號放在與它們所屬的控制語句相同的縮進級別上。除此之外,您的大型if..else塊可以進行優化,您需要修復代碼中的SQL注入問題。你可能想考慮不使用多年不贊成使用的HTML元素('')。 – ThiefMaster 2012-01-05 01:25:20
至於身份識別風格,對不起,我是PHP的新手。我只是想它工作,然後繼續sql注入問題......它只是沒有添加任何數據庫... – 2012-01-05 01:28:41
你確定你的輸入沒有終止查詢?您可能會因爲盲目接受會話和發佈查詢中的數據而被安全授課。看看mysql_real_escape_string – 2012-01-05 01:29:55