Javascript EOF/使用AJAX调用PHP文件时加载错误失败
显然我的发帖请求被取消了? 而且,当我使用select查询数据库时,mysqli_result对象具有所有空值:Javascript EOF/使用AJAX调用PHP文件时加载错误失败,javascript,php,jquery,ajax,eof,Javascript,Php,Jquery,Ajax,Eof,显然我的发帖请求被取消了? 而且,当我使用select查询数据库时,mysqli_result对象具有所有空值: object(mysqli_result)[2] public 'current_field' => null public 'field_count' => null public 'lengths' => null public 'num_rows' => null public 'type' => null 这是我的php文
object(mysqli_result)[2]
public 'current_field' => null
public 'field_count' => null
public 'lengths' => null
public 'num_rows' => null
public 'type' => null
这是我的php文件:
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "uoitlol";
$name = "test1"; //this should be $_POST['name']; test1 is just to test if it works.
$err = false;
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_errno > 0) {
echo 'connerr';
die();
}
$sql = "INSERT INTO summoners (name) VALUES (?)";
$getname = "SELECT name FROM summoners";
$result = $conn->query($getname);
while ($row = $result->fetch_assoc()) {
echo 'name : ' . $row['name'];
if ($row['name'] === $name) {
echo 'error, name exists';
$err = true;
}
}
$stmt = $conn->prepare($sql);
$stmt->bind_param('s', $name);
if ($err === false) {
if (!$stmt->execute()) {
echo 'sqlerr';
} else {
echo 'success';
}
}
$stmt->close();
mysqli_close($conn);
将?>
放在php文件的末尾,而不是使用var-dataString='name='+name代码>改用此选项:
var data = { "name" : name};
jQuery将自动为您处理脏东西,这样您就不必对它和其他东西进行特殊的文本转义
这是我所能帮助的,不需要任何日志文件,只需快速浏览一下您的代码。从您的submitName.php
中删除此内容,除非其中确实包含HTML
<!DOCTYPE html>
请在这里发布您的代码,而不是作为pastebin链接。我不能在这里发布我的代码,它会变得乱七八糟。请使用编辑器中的代码标记工具:{}
我正在使用它,但它仍然乱七八糟,我设法修复了它,我的坏!您是否收到任何服务器端错误?谢谢您的回复!我按照建议做了更改,但仍有错误。以下是我从输出日志中得到的错误:加载资源失败:软件导致的连接中止:public_html/submitName.php上的recv失败(20:55:45:109 |错误,网络)加载资源失败:public_html/submitName.phpOkay cool上的服务器意外结束文件(20:55:52:199 |错误,网络)。你能继续更新你的密码吗?请回答这个问题。谢谢我实际上是在使用ajax来执行php文件,这样浏览器就不会切换页面。我可以加载页面,但每当我提交表单时,我都会收到意外的eof错误,或者我收到软件导致连接中止,recv失败错误。好的,这很酷。但是您应该仍然能够自己加载页面以查看输出。因此,自己加载“submitName.php”
,然后使用die()
method,逐步遍历文件,直到找到错误。此外,如果没有看到错误,请将其添加到PHP代码ini\u集的开头(“display\u errors”,1);ini设置(“显示启动错误”,1);错误报告(-1)代码>好的,我运行了PHP文件并对其进行了一些修改(更新的版本在文章中进行了编辑)。它本身运行良好,它更新了表,如果表已经存在,则不会添加名称。谢谢,但这并没有解决问题。我已经彻底检查了您提供的文件,它们没有任何问题。您缺少一个}
,
或php标记前后有空格。您可能还想尝试重新加载netbeans。我是从我的WAMP服务器日志文件中得到的:27-Nov-2014 04:12:21 Europe/Paris]PHP致命错误:在C:\Program Files(x86)\WAMP\www\WSFinal\public\u html\submitName.PHP的第27行[27-Nov-2014 04:12:21 Europe/Paris]PHP堆栈跟踪中对非对象调用成员函数fetch\u assoc():[27-Nov-2014 04:12:21 Europe/Paris]PHP 1.{main}()C:\Program Files(x86)\wamp\www\WSFinal\public\u html\submitName.PHP:0So$getname=“从召唤者中选择名称”
没有返回任何内容。我想是这样的……但查询返回的是一个mysqli\u结果对象。然而,对象中的每个字段都是空的。我很困惑。
<!DOCTYPE html>
<?php
//your PHP code//
?>
<!DOCTYPE html>
//your HTML here//
</html>
if (!empty($name) { //verify the form value was received before running query//
$getname = "SELECT name FROM summoners WHERE name = $name";
$result = $conn->query($getname);
$count = $getname->num_rows; //verify a record was selected//
if ($count != 0) {
while ($row = $result->fetch_assoc()) {
echo 'name : ' . $row['name'];
if ($row['name'] === $name) {
echo 'error, name exists';
$err = true;
}
}
} else {
echo "no record found for name";
exit;
}
}