簡體   English   中英

MySQL數據庫表為空時如何插入行?

[英]How do I insert a row when MySQL database table is empty?

我希望這不是重復的問題。 我到處搜尋,找到無濟於事的答案。

我想插入表格的一行中。 聽起來很簡單,但是如果表為空,它將無法正常工作。 我不知道為什么。 只要表中有一行,它就可以正常工作。 任何幫助表示贊賞。 謝謝。

我的代碼:

<?php

$fname = $_POST['fname'];
$mi = $_POST['mi'];
$lname = $_POST['lname'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$add1 = $_POST['add1'];
$add2 = $_POST['add2'];
$city = $_POST['city'];
$state = $_POST['state'];
$zip = $_POST['zip'];

$con = mysqli_connect("localhost","database_username","database_password","database"); 

$sql1 = "INSERT INTO employee (fname, mi, lname, phone, email, add1, add2, city, state, zip) VALUES ('$fname', '$mi', '$lname', '$phone', '$email', '$add1', '$add2', '$city', '$state', '$zip')";

mysqli_query($con,$sql1);

mysqli_close($con);

?>

您的代碼是正確的,但有時數據可能具有一些特殊字符,例如\\ /?。 等等,因此建議您更改代碼中的所有變量

$fname = $_POST['fname'];

$fname = addslashes($_POST['fname']);

然后嘗試它會完成

您沒有逃避這些值。 如果任何值包含撇號,您的查詢將失敗。 由於它們來自帖子,因此您必須使用mysqli_real_escape_string

使用以下執行來插入行

       mysqli_query($con,$sql1);

    musqli_execute($sql1);

經過數小時的嘗試后,我使它正常工作...最終,我最終首先檢查了一個空表,然后在表為空的情況下重新創建了該表。

我不知道為什么會這樣,但這是我的代碼……有點不雅致,但是我找不到更好的解決方案。 我知道我沒有逃避自己的價值觀。 我待會兒。 現在,我只是想解決這個困擾我好幾天的問題。

<?php

$fname = $_POST['fname'];
$mi = $_POST['mi'];
$lname = $_POST['lname'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$add1 = $_POST['add1'];
$add2 = $_POST['add2'];
$city = $_POST['city'];
$state = $_POST['state'];
$zip = $_POST['zip'];

$con = mysqli_connect("localhost","username","password","database"); 
if (!$con) {
        die('Could not connect: ' . mysql_error());
           }

$sql = 'CREATE TABLE employee'
     . ' ('
     . ' fname text,'
     . ' mi varchar(1),'
     . ' lname text,'
     . ' email varchar(100),'
     . ' phone varchar(15)'
     . ' add1 varchar(100),'
     . ' add2 varchar(100),'
     . ' city varchar(100),'
     . ' state varchar(25)'
     . ' zip varchar(10),'
     . ' );';

$sql1 = "INSERT INTO employee (fname, mi, lname, phone, email, add1, add2, city, state, zip,) VALUES ('$fname', '$mi', '$lname',  '$phone',  '$email','$add1', '$add2', '$city', '$state', '$zip')";

$sql2 = "SELECT * FROM employee";

$sql3 = mysqli_query($con,"SELECT count(*) FROM employee");

if ($sql3 == FALSE) {
    trigger_error(mysql_error()." in ".$sql3);
    exit();
}
else 
{
    $result = mysqli_fetch_array($sql3);
}

if($result[0] != 0)
{
    mysqli_query($con,$sql1);
}
else
{
    mysqli_query($con,$sql);
    mysqli_query($con,$sql1);
}

mysqli_close($con);

?>

如果變量是字符串,則對查詢中的每個變量使用“ .. $ fname。”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM