我有以下insert语句,如果PName没有(')值,它可以正常工作,但是当文本包含(')时,查询将返回语法错误。知道如何解决这个问题吗?非常感谢。
$queryinsert = "INSERT INTO CART (CartPID, CartPName, CartPrice,CartCustID, CartDate) values ( $pid, '$PName', $PPrice, $CustID, (NOW()))";
答案 0 :(得分:4)
在将输入保存到数据库之前,您需要转义输入。例如,使用mysql_real_escape_string。
$PName = mysql_real_escape_string($PName);
$queryinsert = "INSERT INTO CART (CartPID, CartPName, CartPrice,CartCustID, CartDate) values ( $pid, '$PName', $PPrice, $CustID, (NOW()))";
这种情况可能会导致 SQL注入,您应该check this topic。首先要做的是转到准备好的语句,这样可以避免SQL注入预防带来的麻烦。