我只想说,这里很可能会很简单。
我在一个网站上工作,用户基本上用一些数据填写一个表单,这些数据在提交时被发送(GET(到另一个php页面,该页面的标题下包括我的数据库连接脚本,然后以INSERT的形式执行SQL查询。此页显示为空白。我有一些html元素,如果没有mysql_error((,这些元素就会显示出来。
这是页面的样子,我做错了什么?
<?php
include '/partials/header.php';
include '/functions/db_connection.php';
if(isset($_POST['value0'])) {
$value0 = mysql_real_escape_string($_POST["value0"]);
$value1 = mysql_real_escape_string($_POST["value1"]);
$value2 = mysql_real_escape_string($_POST["value2"]);
$value3 = mysql_real_escape_string($_POST["value3"]);
$value4 = mysql_real_escape_string($_POST["value4"]);
$value5 = date("d-m-Y");
$query = "INSERT INTO db.my_table(value0, value1, value2, value3, value4, value5, value6, value7)
VALUES ('. $value0 .',
'. $value1 .',
'. $value2 .',
'. $value3 .',
'. $value4 .',
'. $value5 .',
'enum-value',
'. $value7 .');";
$result = mysql_query($query);
if(!$result)
{
//something went wrong, display the error
echo 'Congratulations, something went wrong. You are officially retarded.<br /><br />' . mysql_error();
$sql = "ROLLBACK;";
$result = mysql_query($sql);
}
else
{
$sql = "COMMIT;";
$result = mysql_query($sql);
?>
<div class="box">
<h1 class="green">That's it!</h1>
<p>Let's do some more novice php scripting.</p>
</div>
<?php
}
}
?>
这是我的连接文件:
<?php
$server = "servername";
$userName = "username";
$password = "password";
$db = "db";
$con = mysql_connect($server,$userName,$password,$db);
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>
您的字符串有错误的引号或至少有错误的串联。。。
$query = "INSERT INTO yada yada
VALUES ('. $value0 .',
^---
您已经启动了一个双引号字符串,因此不需要将变量"串联"到字符串中。例如CCD_ 1将正常工作。因此,要么切换到双引号:
VALUES ('" . $value0 . "' ...
^-- ^--
或者简单地消除级联的尝试:
VALUES('$value0', ....
更改此代码块
$query = "INSERT INTO db.my_table(value0, value1, value2, value3, value4, value5, value6, value7)
VALUES ('. $value0 .',
'. $value1 .',
'. $value2 .',
'. $value3 .',
'. $value4 .',
'. $value5 .',
'enum-value',
'. $value7 .');";
到这个
$query = "INSERT INTO db.my_table(value0, value1, value2, value3, value4, value5, value6, value7)
VALUES ('. $value0 .',
'. $value1 .',
'. $value2 .',
'. $value3 .',
'. $value4 .',
'. $value5 .',
'enum-value',
'. $value7 .')";
$query = "INSERT INTO db.my_table(value0, value1, value2, value3, value4, value5, value6, value7)
VALUES ('". $value0 ."',
'". $value1 ."',
'". $value2 ."',
'". $value3 ."',
'". $value4 ."',
'". $value5 ."',
'enum-value',
'". $value7 ."')";
查询中的引号做错了。请参见上文。您应该使用".."来进入变量领域,而不是".-"因为您的字符串是使用".