整数的无效输入语法:“”

时间:2019-12-01 09:49:36

标签: php html database postgresql

我有一个问题,无法使用HTML表单代码构建INSERT PHP文件。当我从HTML表单中删除时,此错误会弹出“”无效的整数输入语法:“”第2行:””

在所有代码中,我注释每一行,什么也没有。

有我的PHP脚本

`     

$order_nr = pg_escape_string($_POST['order_nr']);
$date = pg_escape_string($_POST['date']);
$place = pg_escape_string($_POST['place']);
$service = pg_escape_string($_POST['service']);
$Vards = pg_escape_string($_POST['vards']);
$Uzvards = pg_escape_string($_POST['uzvards']);
$phone = pg_escape_string($_POST['phone']);
$email = pg_escape_string($_POST['email']);
$veids = pg_escape_string($_POST['veids']);
$passw = pg_escape_string($_POST['passw']);
$papildaprikojums = pg_escape_string($_POST['papildaprikojums']);
$save_info = pg_escape_string($_POST['save_info']);
$defekts = pg_escape_string($_POST['defekts']);

$query = " INSERT INTO serviss (order_nr, place, service, vards, uzvards, email, veids, passw, save_info, papildaprikojums, defekts)
                       VALUES ('$order_id', '$place', '$service', '$vards', '$uzvards', '$email', '$veids', '$passw', '$papildaprikojums', '$save_info', '$defekts') " ;
$result = pg_query($query);
if (!$result) {
    $errormessage = pg_last_error();
    echo "Error with query: " . $errormessage;
    exit();
}
printf ("These values were inserted into the database - %s %s %s", $order_id);
pg_close();

有我的HTML表单代码

<form action="serviss.php" method="post" >
            <div class="ievade">
    Pasūtijuma numurs : <input type="text" size="5" name="order_id"> <br><br> 
Pieņemšanas datums : <input type="date" data-date="" data-date-format="DD MMMM YYYY" value="2015-08-09" name="date"> <br><br> 
    Pieņemšanas vieta : <select name="place">
                           <option value="Ausekļa_iela_9"> Ausekļa iela 9 </option>
                        </select>  <br><br>
    Pieņēma : <select >
                <option value="service" name="Maris"> Māris </option>
                <option value="service name="Toms"> Toms </option>          
              </select>    <br> <br>
    Klienta vārds : <input type="text"  name="vards" size="5"> <br><br> 
    Klienta uzvārds : <input type="text" name="uzvards" size="5">  <br><br>
    Klienta tel.nr.: <input type="tel" id="phone" size="6"> <br><br> 
    Klienta e-pasts: <input type="text" value="example@test.net" name="email"> 

    <br><br>

    Iekārtas veids: <input type="text" value="iekārta" name="veids" size="5"> <br><br>
    Parole: <input type="text" name="passw" size="5"> <br><br> 
</div>
<div class="checkbox">
    Garantija: <br>
     Ir
    <input type="radio" name="garantija" value="Ir"> <br>
               Nav <input type="radio" name="garantija" value="Nav"> 
               <br> <br>
</div>
<div class="ievade">

    Papildaprīkojums: <input type="text" name="papildaprikojums" >   <br><br>
    Papildus informācija: <input type="text" name="informacija">
     <br> <br>
    Saglabājamā informācija: <input type="text" name="save_info"> 
    <br> <br>
    Defekta apraksts: <input type="text" name="defekts">        
</div>
    </div>
<input type="submit" value="Submit">
</form>

希望您能帮助我。

我使用PostgreSQL 10.10

1 个答案:

答案 0 :(得分:1)

这就像您将'order_id'与'order_nr'混为一谈。 名称值属性是'order_id',因此当您尝试获取它时,它是

$_POST['order_id'] not `$_POST['order_nr']`

这意味着您应该说

$order_nr = pg_escape_string($_POST['order_id']);

为了使用变量插入insert语句,然后

$query = " INSERT INTO serviss (order_nr, place, service, vards, uzvards, email, veids, passw, save_info, papildaprikojums, defekts)
                   VALUES ('$order_nr', '$place', '$service', '$vards', '$uzvards', '$email', '$veids', '$passw', '$papildaprikojums', '$save_info', '$defekts') " ;

或者您应该说

$order_id = pg_escape_string($_POST['order_id']);

然后

$query = " INSERT INTO serviss (order_nr, place, service, vards, uzvards, email, veids, passw, save_info, papildaprikojums, defekts)
                   VALUES ('$order_id', '$place', '$service', '$vards', '$uzvards', '$email', '$veids', '$passw', '$papildaprikojums', '$save_info', '$defekts') " ;