【发布时间】:2020-02-08 23:58:08
【问题描述】:
我有一个表单,POST 值一直作为“”空字符串进入一个唯一的 SQL 字段。 它必须是唯一的,因为该字段是可选的,但 jet 它不能有 2 个相同的值。唯一值确实允许空多个值。 我什至不想说我试图做什么,我在过去几天试图解决这个问题。 我得到的最接近的是将 '$OIB'=IF('$OIB'='',NULL,'$OIB' 放入 NSERT INTO 语句中,然后我将空值输入数据库,但由于某种原因,当输入数字时OIB 表单字段将数字 1 放入数据库...
$result = mysqli_query($conn, "SELECT OIB, NAZIV FROM STRANKEP WHERE OIB = '$OIB' OR NAZIV = '$NAZIV'");
if(mysqli_num_rows($result) == 0) {
// row not found, do stuff...
$sql = "INSERT INTO STRANKEP (NAZIV, OIB, EMAIL, ADRESA, TELEFON) VALUES ('$NAZIV', CASE WHEN '$OIB' = '' THEN 'NULL', '$EMAIL', '$ADRESA', '$TELEFON')";
$query = mysqli_query($conn, $sql);
这个解决方案在输入表单时让我为空,但不是真正的 $OIB,它只是输入数字 1。
$result = mysqli_query($conn, "SELECT OIB, NAZIV FROM STRANKEP WHERE OIB = '$OIB' OR NAZIV = '$NAZIV'");
if(mysqli_num_rows($result) == 0) {
// row not found, do stuff...
$sql = "INSERT INTO STRANKEP (NAZIV, OIB, EMAIL, ADRESA, TELEFON) VALUES ('$NAZIV', '$OIB'=IF('$OIB'='',NULL,'$OIB'), '$EMAIL', '$ADRESA', '$TELEFON')";
$query = mysqli_query($conn, $sql);
提前感谢您的帮助。
【问题讨论】:
-
请继续 Sql 注入 stackoverflow.com/questions/60174/…
-
不使用准备好的语句是完全不可接受的编码。
-
我是菜鸟,对不起,这也仅适用于本地网络,很少有人使用数据库。但我会做出改变。
-
为什么不检查这些值并将它们转换为
NULL?