簡體   English   中英

如何在php中調用函數/方法以將函數返回值插入mysql

[英]How to call a function/method in php to insert function return value to mysql

<?php
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];

function random_string($length) {
    $key = '';
    $keys = array_merge(range(0, 9), range('a', 'z'));

    for ($i = 0; $i < $length; $i++) {
        $key .= $keys[array_rand($keys)];
    }

    return $key;
}

if($email)
{

$connect = mysql_connect(" HOST ", " USERNAME ", " PASSWORD") or die("Couldn't Connect");

mysql_select_db("CiniCraftData") or die ("Couldn't Find Database"); 

            $query = "INSERT INTO customers (fname, lname, email, alphanum) VALUES ('$fname', '$lname', '$email', 'random_string(10)')";
            $result = mysql_query($query) or die("Some kind of error occured.");

            echo ("Welcome " + $username + ", you are now in my database!");

}
else die("You did not fill out the fields correctly, please try again.");

?>

我需要中間以$ query =“ INSER ...'random_string(10)')”開頭的行的幫助;

我需要將一個隨機的字母數字字符串插入到名為“ customers”的表中,但是與其調用函數“ random_string()”而不是將“ random_string(10)”插入到我的表中,這為我的表提供了6個字段:

5   John    Smith   Jogsz@CiniCraft.com random_string(10)   0

我該如何解決?

$query = "INSERT INTO customers (fname, lname, email, alphanum) VALUES ('$fname', '$lname', '$email', '" . random_string(10) . "')";

這應該工作! 我認為即使雙引號將解析變量,但它們也不會解析函數。

連接函數和您的字符串,

$query = "INSERT INTO customers (fname, lname, email, alphanum) VALUES ('$fname', '$lname', '$email', '" . random_string(10) ."')";

附帶說明一下,如果變量的值來自外部,則該查詢容易受到SQL Injection攻擊。 請查看下面的文章,以了解如何防止它。 通過使用PreparedStatements,您可以擺脫在值周圍使用單引號的麻煩。

對此做兩個陳述。 在第一個語句中,調用函數並將值分配給變量,然后在INSERT...語句中,使用變量

暫無
暫無

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

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