您好我试图将表单中的一些数据插入到我的数据库中,但我似乎无法让它工作。我没有从mysql_error()中得到任何错误,而且我无法解释可能出错的生活。任何帮助将不胜感激,提前感谢!
代码正在输出"不成功!测试9"。
这是我的表格
<form method="post" action="blog_add_posts.php">
<input type="hidden" name="submitted" value="true" />
<fieldset>
<legend>Add Blog Posts</legend>
<label>Title: <input type="text" name="title" /></label>
<label>Body: <input type="text" name="body" /></label>
</fieldset>
<br />
<input type="submit" value="Submit Post" />
</form>
这是我的PHP(我出于安全原因隐藏了define语句)
<?php
if (isset($_POST['submitted'])){
define('DB_NAME', '(Hiding For Security)');
define('DB_USER', '(Hiding For Security)');
define('DB_PW', '(Hiding For Security)');
define('DB_HOST', '(Hiding For Security)');
$link = mysql_connect(DB_HOST, DB_USER, DB_PW);
if(!$link){
die('Test Connection Failed 1: ' . mysql_error());
}
$db_selected = mysql_select_db(DB_NAME, $link);
if(!$db_selected){
die('Test Connection Failed 1: ' . mysql_error());
}
$title = $_POST['title'];
$title = mysqli_real_escape_string($link, $title);
$body = $_POST['body'];
$body = mysqli_real_escape_string($link, $body);
$sqlInsert = "INSERT INTO 'phpmy1_belairfinishing_com'.'Blog' (Post_ID, Post_Title, Post_Date, Post_Body) VALUES (NULL, '$title', CURRENT_TIMESTAMP, '$body')";
if(mysqli_real_query($link, $sqlInsert)){
echo "<p> Successful! </p>";
} else {
echo "<p> Unsuccessful! Test 11 </p>";
}
$newrecord = "Successfully Added To Database";
mysqli_close($link);
} //End of ISSET if statement
?>
答案 0 :(得分:2)
你正在混合mysql_和mysqli _
例如,你有:
$link = mysql_connect(DB_HOST, DB_USER, DB_PW);
然后你使用:
if(mysqli_real_query($link, $sqlInsert)){
您应该使用其中一种,但不能像这样将它们混合在一起
答案 1 :(得分:1)
<input type="submit" value="Submit Post" />
将您的HTML代码更改为:
<input type="submit" name="submitted" value="Submit Post" />
并删除
<input type="hidden" name="submitted" value="true" />
告诉我它是怎么回事。
答案 2 :(得分:0)
在您的查询中,您需要将PHP变量放在字符串之外,否则它们将被解析为文本(例如:“$ title”)而不是变量的实际值:
$sqlInsert = "INSERT INTO 'phpmy1_belairfinishing_com'.'Blog' (Post_ID, Post_Title, Post_Date, Post_Body) VALUES (NULL, '".$title."', CURRENT_TIMESTAMP, '".$body."')";
同样在您的表单中,您需要value
,以便获得数据:
<input type="text" name="title" value="" />
<input type="text" name="body" value="" />
这使得它们在开始时空白,请确保在点击提交之前键入它们。
与 @bhttoan 指出的一样。您需要确保为所有功能mysqli
而不是mysql
与mysqli
隔行扫描。