我正在尝试将这些值插入到我的数据库中,但我遇到了一些问题。我不知道为什么。下面是需要插入的值,我为此编写的当前代码如下。
<?php
include ('db.php');
$cfname=$_POST['c_firstname']
$clname=$_POST['c_lastname'];
$address=$_POST['c_address'];
$postcode=$_POST['c_postcode'];
$mobno=$_POST['c_mobno'];
$emailad=$_POST['c_email'];
$expsttime=$_POST['e_sttime'];
$expendtime=$_POST['e_endtime'];
$expname=$_POST['experience'];
$car1=$_POST['car'];
$driver1=$_POST['driver'];
$host1=$_POST['host'];
$addnewbookingSQL="INSERT into experienceBooking
(firstName, lastName, address, postcode, mobNo, emailAd, expStTime, expEndTime, experienceName, car, driver, host)
values ('".$cfname."','".$clname."','".$address."','".$postcode."','".$mobno."','".$emailad."','".$expsttime."','".$expendtime."','".$expname."','".$car1."','".$driver1."','".$host1."')";
$exeaddnewbookingSQL=mysql_query($addnewbookingSQL);
?>
我不确定我的SQL是否正确查询,因为它在执行此代码时显示空白屏幕。
答案 0 :(得分:1)
在您提供的代码中,您有语法错误;您在;
之后遗漏了$cfname=$_POST['c_firstname']
。
但是,您使用的是deprecated functions,应该停止使用它们。我建议使用PDO,但由于您似乎最熟悉mysql_
函数,因此我使用较新的mysqli_*
函数和prepared statements为您提供了解决方案。
// Connect to database
$connection = new mysqli('server', 'user', 'password', 'db');
// Check connection for error
if(mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
// Prepare the insert
$stmt = $connection->prepare("INSERT INTO experienceBooking (firstName, lastName, address, postcode, mobNo, emailAd, expStTime, expEndTime, experienceName, car, driver, host) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
// Bind values
$stmt->bind_param('ssssssssssss', $_POST['c_firstname'], $_POST['c_lastname'], $_POST['c_address'], $_POST['c_postcode'], $_POST['c_mobno'], $_POST['c_email'], $_POST['e_sttime'], $_POST['e_endtime'], $_POST['experience'], $_POST['car'], $_POST['driver'], $_POST['host']);
// Execute prepared statement
$stmt->execute();
// Close statement and connection
$stmt->close();
$connection->close();
答案 1 :(得分:0)
你在第4行错过了分号:
$cfname=$_POST['c_firstname'];
我总是在编写代码时在我的php脚本顶部添加以下内容:
error_reporting(E_ALL);
ini_set('display_errors', '1');
以上内容将帮助您调试代码,特别是获取有错误的行 在生产模式下进行注释。
答案 2 :(得分:0)
嗯,你没有在第4行用分号结束..
此外,您应该像这样修改代码。
$addnewbookingSQL="INSERT into experienceBooking values ('".mysql_real_escape_string($cfname)."','".mysql_real_escape_string($clname)."','".mysql_real_escape_string($address)."','".mysql_real_escape_string($postcode.)"','".mysql_real_escape_string($mobno)."','".mysql_real_escape_string($ mailad)."','".mysql_real_escape_string($expsttime)."','".mysql_real_escape_string($expendtime)."','".mysql_real_escape_string($expname)."','".mysql_real_escape_string($car1)."','".mysql_real_escape_string($driver1)."','".mysql_real_escape_string($host1)."')";
if($exeaddnewbookingSQL=mysql_query($addnewbookingSQL));
else
echo mysql_error();
上面代码mysql_real_escape_string
中的哪个用于保护sql注入,mysql_error
用于查询中是否有任何错误。