小编Fun*_*ner的帖子

致命错误在null上调用成员函数prepare()

我正在尝试检查电子邮件是否已在注册中使用.当我在学校里工作时它运作良好,但现在它突然显示错误:

致命错误:在null上调用成员函数prepare()

我用它来包括

define("dbserver", "localhost");
define("dbuser", "user");
define("dbpass", "");
define("dbname", "user");    


$db = new PDO(
"mysql:host=" .dbserver. ";dbname=" .dbname,dbuser,
array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8"
) );
Run Code Online (Sandbox Code Playgroud)

在这里

session_start();
include "DBjoin.php";
if(isset($_POST["email"])) {
  $_SESSION['email'] = $_POST["email"];
  }   
if(isset($_POST["nick"])) {
  $_SESSION['nick'] = $_POST["nick"];         
}    
if(isset($_POST["pass"])) {
  $_SESSION['pass'] = $_POST["pass"];
  $_SESSION['pass'] = base64_encode($_SESSION['pass']);    
}
$sthandler = $db->prepare("SELECT Email FROM Registrace WHERE Email =     :email");
$sthandler->bindParam(':email', $_SESSION['email']);
$sthandler->execute();               
if(filter_var($_SESSION['email'], FILTER_VALIDATE_EMAIL)) {
if($sthandler->rowCount() > 0){
      echo "Email is …
Run Code Online (Sandbox Code Playgroud)

php mysql pdo

1
推荐指数
1
解决办法
2万
查看次数

PHP:调整SELECT for SQL注入预防后循环不起作用

我试图以防止SQL注入(标准网站)的方式为MySQL设置PHP查询.

我有几个INSERT查询,其中更改此工作正常,但在以下SELECT我不断收到错误,因为更新,它看起来像while循环不适用于我所做的更改(它运行良好,不使用语句作为在旧代码中).

谁能告诉我这里做错了什么?

新PHP:

$stmt = $conn->prepare("SELECT ? FROM TranslationsMain WHERE location LIKE '%calendar weekday%' ORDER BY sortOrder, ?");
$stmt->bind_param('s', $selectedLang);
$stmt->execute();
$result = $stmt->get_result();  
while($arrCalWeekdays = $result->fetch_assoc()){
    $calWeekdays[] = $arrCalWeekdays;
}
$conn->close();
Run Code Online (Sandbox Code Playgroud)

旧PHP(更改部分):

$sql = "SELECT " . $selectedLang . " FROM TranslationsMain WHERE location LIKE '%calendar weekday%' ORDER BY sortOrder, " . $selectedLang;
$result = $conn->query($sql);  
while($arrCalWeekdays = $result->fetch_assoc()){
    $calWeekdays[] = $arrCalWeekdays;
}
$conn->close();
Run Code Online (Sandbox Code Playgroud)

错误信息:

致命错误:在第21行的/homepages/21/d580042014/htdocs/myform.php中调用非对象上的成员函数fetch_assoc()

提前谢谢了.

php mysql select associative-array sql-injection

1
推荐指数
1
解决办法
141
查看次数

PHP PDO表不更新数据

我刚开始使用PHP进行编码,并且在尝试创建待办事项列表时,我在创建一个名为"add.php"的文件后撤消了,该文件应该向表中添加新数据.主文件index.php调用表元素ok并在浏览器上显示它们,但我无法添加新项.

add.php中的代码在这里:

<?php

require_once 'app/init.php';

if(isset($_POST['name'])) {
    $name = trim($POST['name']);

    if(!empty($name)) {
        $addedQuery = $db->prepare("
            INSERT INTO items (name, user, done, created) 
            VALUES (:name, :user, 0, NOW() )
                ");

        $addedQuery->execute([
            'name' => $name,
            'user' => $_SESSION['user_id']
            ]);
    }
}

header('location: index.php');




?> 
Run Code Online (Sandbox Code Playgroud)

如果它有帮助,我在WampServer 2.5上使用PHP 5.5.12和MySQL 5.6.17

php mysql pdo

1
推荐指数
1
解决办法
64
查看次数

使用参数抛出无效参数号的SQL

所以我试图在SQL中使用"LIKE",基本上是为了看一个玩家是否已经在一个团队中.这是我的代码:

    $checkifonlytwo = "SELECT * FROM sg_turn_teams WHERE joinid = :joinid AND players LIKE '%:ownerid,%'";
    $paramstwo = array(
        ":joinid" => $joinid,
        ":ownerid" => $_SESSION['user']['id']
    );
    try{
    $stmttwo = $db->prepare($checkifonlytwo);
    $resulttwo = $stmttwo->execute($paramstwo);
    }
    catch(PDOException $ex){
        die("Failed to run query #2: " . $ex->getMessage());
    }
Run Code Online (Sandbox Code Playgroud)

另外你可以看到我希望它是LIKE '%1,%'例如,所以最后的逗号也是如此.

我的表结构看起来像这样. 表结构

编辑,玩家将会像没有名字的"1,2,3",因为用户可以更改他们的名字.图片有名字,但它应该是1,2,3

php mysql sql

1
推荐指数
1
解决办法
66
查看次数

php函数参数未保留传入的完整字符串

我有一个PHP函数,在回显一个字符串时,正在丢失一些传递给它的字符.有什么理由会发生这种情况吗?

我通过: $vhkvdov#jqlydk#p*_L#1qrlws|ufqh#KWLZ#1hwdgsX

它返回: #jqlydk#p*_L#1qrlws|ufqh#KWLZ#1hwdgsX

这是我的PHP代码:

<?php
function display($str) {
    echo $str;
}
display("$vhkvdov#jqlydk#p*_L#1qrlws|ufqh#KWLZ#1hwdgsX");
?>
Run Code Online (Sandbox Code Playgroud)

php function-parameter texttrimming

0
推荐指数
1
解决办法
120
查看次数

PDO查询无法使用$ _COOKIE

我有一个带PDO的登录系统,它存储用户登录cookie时的用户名.这意味着当它们到达重定向页面时,cookie可用于获取该用户的更多数据(例如,名字和名字).

这是在index.php文件中设置cookie的代码:

setcookie('username',$username,time() + (86400 * 7));

这是我想使用cookie的值获取数据的代码:

$username = $_COOKIE['username'];

$query = $handler->query('SELECT * FROM users WHERE username ='$username' ');
while($r = $query->fetch(PDO::FETCH_OBJ)){
    echo $r->firstname, '<br>';
    echo $r->secondname, '<br>';

}
Run Code Online (Sandbox Code Playgroud)

每次运行代码时,都会返回以下错误消息:

解析错误:语法错误,第17行的C:\ xampp\htdocs\web\home.php中的意外'$ username'(T_VARIABLE)

php

0
推荐指数
1
解决办法
94
查看次数

PHP输出未显示

我是新学习php,但我一开始就陷入困境.无论我在PHP中尝试什么方法,但我无法在输出中显示变量数据..下面是从互联网上复制粘贴的代码,即使在我看不到$ username的输出...请帮助我!

<html>
<body>
<h1>Hi Jacob</h1>
<h3>Demonstrates using a variable</h3>
<?php
$userName = "Jacob";
print Hi, $userName;
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

在输出中它" Hi, $username "会显示出来.不是变量的数据

php

0
推荐指数
1
解决办法
109
查看次数

如何将文本文件的每一行设置为变量?

我有一个简单的 php 脚本,它将 POST 的内容存储到一个文本文件中。data.txt 看起来像这样:

Something - Line1
Something - Line2
Something - Line3
Something - Line4
Run Code Online (Sandbox Code Playgroud)

我试图找出将每一行设置为变量的最佳方法,例如

$line1 = "Something - Line1";
$line2 = "Something - Line2";
$line3 = "Something - Line3";
$line4 = "Something - Line4;"
Run Code Online (Sandbox Code Playgroud)

所以我可以用它做进一步的处理。请注意,行数可能会发生变化。有任何想法吗?:-)

谢谢!

php

0
推荐指数
1
解决办法
2619
查看次数

SQL语法错误或服务器错误?

嘿家伙我是整个数据库场景的新手,并尝试执行一个相对简单的任务,但显然我做错了什么.每次我尝试执行此语句时,都会收到1064错误,告诉我语法错误或服务器版本太旧.SQL Server版本是5.1.x,我正在运行PHP5.

这是我的代码:

$query = "INSERT INTO `cut_log` (`driver`, `date1`, `time`, `cut`, `flood`, `notes`) VALUES ($driver, $date, $time, $cut, $flood, $notes)";
$result = $mysqli->query($query);
if($result) {
echo "success";
} else {
echo "" . $mysqli->errno . $mysqli->error;
}
Run Code Online (Sandbox Code Playgroud)

php mysql syntax-error

0
推荐指数
1
解决办法
58
查看次数

mysql -u root -p 有什么作用?

我想弄清楚mysql -u root -p命令的作用。

我用谷歌搜索了命令,但找不到任何好的结果。

mysql

0
推荐指数
1
解决办法
3万
查看次数