我不是最好的PHP,但可以得到它的工作,因爲我的腳本坐着它,但使數據庫看起來像一團糟。如何鏈接它如何提交和我的代碼截圖。我試圖讓它一次提交所有數據到我的SQL表中的1行(行),但它運行每個插入查詢一次接一個,因爲我有它使數據庫一團糟。我怎樣才能縮短這段代碼,讓它一次執行所有的插入查詢。發送php提交到MySQL
這裏是我的PHP:
<?php
// send dataset 1
if (isset($_REQUEST['sendName'])) {
$yourfield=preg_replace('/[^a-zA-Z0-9\ ]/','',$_REQUEST['sendName']);
$yourfield=htmlspecialchars($yourfield);
} else {
die('User did not send any data to be saved! field1');
}
$pdo_dsn='mysql:dbname=smsdata;host=localhost';
$pdo_user='root';
$pdo_password='mypasswd';
try {
$conn = new PDO($pdo_dsn, $pdo_user, $pdo_password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$qry=$conn->prepare('INSERT INTO SMSTable (sendName) VALUES (:sendName)');
$qry->execute(Array(":sendName" => $yourfield));
} catch (PDOException $e) {
echo 'Error: ' . $e->getMessage() . " file: " . $e->getFile() . " line: " . $e->getLine();
exit;
}
// send dataset 2
if (isset($_REQUEST['sendNumber'])) {
$yourfield=preg_replace('/[^a-zA-Z0-9\ ]/','',$_REQUEST['sendNumber']);
$yourfield=htmlspecialchars($yourfield);
} else {
die('User did not send any data to be saved! field2');
}
$pdo_dsn='mysql:dbname=smsdata;host=localhost';
$pdo_user='root';
$pdo_password='mypasswd';
try {
$conn = new PDO($pdo_dsn, $pdo_user, $pdo_password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$qry=$conn->prepare('INSERT INTO SMSTable (sendNumber) VALUES (:sendNumber)');
$qry->execute(Array(":sendNumber" => $yourfield));
} catch (PDOException $e) {
echo 'Error: ' . $e->getMessage() . " file: " . $e->getFile() . " line: " . $e->getLine();
exit;
}
// send dataset 3
if (isset($_REQUEST['sendEmail'])) {
$yourfield=preg_replace('/[^a-zA-Z0-9\ ]/','',$_REQUEST['sendEmail']);
$yourfield=htmlspecialchars($yourfield);
} else {
die('User did not send any data to be saved! field3');
}
$pdo_dsn='mysql:dbname=smsdata;host=localhost';
$pdo_user='root';
$pdo_password='mypasswd';
try {
$conn = new PDO($pdo_dsn, $pdo_user, $pdo_password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$qry=$conn->prepare('INSERT INTO SMSTable (sendEmail) VALUES (:sendEmail)');
$qry->execute(Array(":sendEmail" => $yourfield));
} catch (PDOException $e) {
echo 'Error: ' . $e->getMessage() . " file: " . $e->getFile() . " line: " . $e->getLine();
exit;
}
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>
,這裏是它做什麼它不整齊地把它放在同一行,因爲我想它使一個爛攤子如屏幕截圖的數據庫,但確實工作得不是我需要它。 http://prnt.sc/b7kum1在屏幕截圖中可以看到它如何「步進」數據,但是我應該一次性將它跨越頂端線。
我知道我的代碼效率極其低下這就是爲什麼我在這裏:)
執行*一個*'INSERT'語句而不是*三*。 – David
以及我如何使用當前的代碼做這件事,我嘗試在最後一節中將它們組合起來,並給出了500錯誤。嘗試在所有3個部分做一個新的變量來做到這一點,它給了我php的線路錯誤。我不知道如何將變量全部拉到一起,並且一次僅插入一個變量,並且它可以正常工作,但會造成數據庫混亂。 –