[英]Php variable inside mysql_query()
我正在嘗試使用CREATE DATABASE命令創建數據庫,但是卻給了我一個錯誤。 這是我的代碼:
$db_usr = mysql_real_escape_string($_POST["email"]);
$con=mysql_connect("localhost","root");
if (! $con)
{
die('Could not connect: ' . mysql_error());
}
else
{
test();
}
function test()
{
$sql = "CREATE DATABASE '$db_usr'";
mysql_query($sql);
}
它總是返回“未定義的變量”
$db_user
變量在函數范圍內不可訪問,這就是為什么會出現該錯誤的原因。
如果要在函數內部使用變量,則將其作為函數參數傳遞,如下所示:
function test($db_usr)
{
$sql = "CREATE DATABASE `$db_usr`";
mysql_query($sql);
}
如果這涉及用戶輸入,則您的數據庫查詢容易受到SQL注入的攻擊。 您應該始終驗證用戶輸入(推薦的方法是對參數化查詢使用MySQLi或PDO)。
另一種選擇:
function test()
{
$db_usr = mysql_real_escape_string($_POST["email"]);
$query= "create database ".$db_usr ."";
$result = mysql_query($query);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.