簡體   English   中英

PHP MySql INSERT INTO-語法錯誤

[英]PHP MySql INSERT INTO - Syntax Error

嘗試創建一個簡單的PHP MySql插入表單,該表單會插入電子郵件地址和隨機的十位數代碼,並不斷返回:

請檢查電子郵件錯誤:您的SQL語法有誤; 檢查與您的MySQL服務器版本相對應的手冊,以在第1行的'NcB44PeYbI)'附近使用正確的語法

NcB44PeYbI顯然是生成的隨機代碼。

function generateRandomString($length = 10) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, strlen($characters) - 1)];
    }
    return $randomString;
}

$con=mysqli_connect("localhost","username","password","dbname");
// Check connection
if (mysqli_connect_errno())
{
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// escape variables for security
$email = mysqli_real_escape_string($_POST['email']);
$acticode = generateRandomString();



$sql="INSERT INTO xActivate (EMAIL_ADDRESS, ACTIVATION_CODE) VALUES ($email, $acticode)";

if (!mysqli_query($con,$sql))
{
  die('Error: ' . mysqli_error($con));
}
echo "1 record added";

mysqli_close($con);

謝謝你的協助!

嘗試這個:

$sql="INSERT INTO xActivate (EMAIL_ADDRESS, ACTIVATION_CODE) VALUES ('$email', '$acticode')";

將值用引號引起來:

$sql="INSERT INTO xActivate (EMAIL_ADDRESS, ACTIVATION_CODE) VALUES ('$email', '$acticode')";

暫無
暫無

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

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