[英]Connecting to a database using php script
我已經創建了HTML表單,並且操作已設置為php腳本。 我對php很陌生,想知道是否有人可以幫助我? 我需要編寫一個腳本,以將信息從表單添加到數據庫。 我還需要創建數據庫和表。 我在網上做了很多閱讀,但仍然無法做到。 這是我的腳本。 請告訴我我犯了什么錯誤。 感謝您的所有幫助。
<?php
$con=mysql_connect("example.com","peter","abc123","my_db");
$sql="CREATE DATABASE user";
if (mysql_query($con,$sql)) {
echo "Database user created successfully";
}
$sql="CREATE TABLE Persons(PID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(PID),firstName CHAR(30),lastName CHAR(30),age INT, dateofbirth DATE, email CHAR(30)";
if (mysql_query($con,$sql)) {
echo "connected to database";
}
$sql="INSERT INTO Persons (firstName, lastName, age, dateofbirth, email) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[age]','$_POST[dateofbirth]','$_POST[email]')";
if (mysql_query($con,$sql)) {
echo "added to database";
}
mysql_close($con);
?>
我嘗試了所有建議的答案,但仍然無法做到。 有人可以提供執行此操作的代碼嗎? 我需要從表單獲取數據,然后使用php將其插入數據庫!
嗨,嘗試一下此代碼,
$con=mysql_connect("example.com","peter","abc123");
$sql="CREATE DATABASE user";
if (mysql_query($sql))
{
echo "Database user created successfully";
}
1.-不要使用mysql_ 函數已棄用,請改用mysqli_函數或PDO。
2.-我猜您有幾個錯誤,首先您在連接腳本上選擇一個數據庫my_db
,但是在下一行中創建了另一個數據庫...這種行為非常奇怪。 如果此腳本每次都執行,則應該更改代碼(不能每次都創建數據庫和表。
在插入字符串中,您的郵政編碼有誤,請嘗試以下操作:
$sql="INSERT INTO Persons (firstName, lastName, age, dateofbirth, email) VALUES ('{$_POST['firstname']}','{$_POST['lastname']}','{$_POST['age']}','{$_POST['dateofbirth']}','{$_POST['email']}')";
由於語法錯誤,您的CREATE TABLE
查詢將失敗。 您必須檢查查詢結果,尤其是當下一個查詢取決於上一個查詢時(並且您正在執行創建數據庫/表之類的操作)。
接下來要更改的是mysql_*
。 不建議使用此功能,而應使用PDO
或mysqli_*
(不難學習,只需嘗試即可)。
並且必須在腳本中進行一項更重要的更改。 您正在獲得用戶輸入並將其添加到查詢中。 不要那樣做! 您必須始終假設用戶正在嘗試對您進行黑客攻擊,因此必須檢查和過濾所有輸入的數據。 將prepared statements
與此類數據一起使用也是很好的。
if (mysql_query($con,$sql)){
echo "Database user created successfully";
} else {
echo 'Error creating database - ' . mysql_error();
}
您所有的sql語句都可以看到錯誤的地方
更改代碼(mysql_query($sql))
而不是(mysql_query($con,$sql))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.