【问题标题】:Invalid input syntax for integer: ""整数的输入语法无效:“”
【发布时间】:2020-03-26 04:58:30
【问题描述】:

我有一个问题,用 HTML 表单代码构建 INSERT PHP 文件。当我从 HTML 表单中删除时,此错误会弹出 ""invalid input syntax for integer: "" LINE 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

【问题讨论】:

  • 您正在尝试将不是整数的数据插入到整数类型的列中。您可以记录您的查询,您应该会看到这一点。但无论如何你都应该使用pg_query_params()

标签: php html database postgresql


【解决方案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') " ;

【讨论】:

  • 谢谢,我正在查看其他问题。
猜你喜欢
  • 1970-01-01
  • 2021-07-05
  • 1970-01-01
  • 1970-01-01
  • 2022-10-08
  • 1970-01-01
  • 2014-07-17
  • 2015-10-19
  • 2015-04-25
相关资源
最近更新 更多