Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php can';无法获得与sqlite DB的连接_Php_Sqlite - Fatal编程技术网

Php can';无法获得与sqlite DB的连接

Php can';无法获得与sqlite DB的连接,php,sqlite,Php,Sqlite,我非常熟悉PHP和mySQL。但是作为一个改变,我想使用sqlite作为DB,我只是无法正确连接。我一直在关注2。来自网站的代码示例,因此我的代码如下所示: <html> <head> <title> DB bearbeiten </title> </head> <body> <form action="insert.php" method="post">

我非常熟悉PHP和mySQL。但是作为一个改变,我想使用sqlite作为DB,我只是无法正确连接。我一直在关注2。来自网站的代码示例,因此我的代码如下所示:

<html>
<head>
    <title>
        DB bearbeiten
    </title>
</head>
<body>

    <form action="insert.php" method="post">
        <input type="text" name="name" placeholder="Name">
        <input type="text" name="eName" placeholder="E-Number">
        <input type="text" name="causes" placeholder="Wirkung">
        <input type="number" name="danger" placeholder="Gefahreinstufung">
        <button type="submit" name="submit">Eintragen</button>
    </form>

    <?php
    echo '1';
        if(isset($_POST['submit'])){
            echo '2';
            $table = "zusatzstoffe";
            $filename = "sqlite:/data/Adrian/zusatzstoffe.db";
            $db = new PDO($filename) or die("cannot open DB");

            //$db = SQLite3::_construct();
            settype($danger, "integer");
            $name = $_POST['name'];
            $eName = $_POST['eName'];
            $causes = $_POST['causes'];
            $danger = $_POST['danger'];
            $db->exec("INSERT INTO $table (name, number, causes, danger) VALUES ($name, $eName, $causes, $danger)");
        }

    ?>
</body>
</html>

贝尔贝滕酒店
埃因特拉根

这行不行,我只是不知道为什么:
$db=newpdo(filename,,'')或die(“无法打开db”)

可能应该是
$filename=“sqlite:/data/Adrian/zusatzstoffe.db;
,初始化PDO对象时不需要第二个和第三个参数-只需
新建PDO($filename)
就足够了。谢谢,虽然它解决了另一个问题。遗憾的是,我无法获取错误日志,因为服务器限制了它的工作。可能是因为您没有用
“$name”,“$number”…)封闭最后一行中的值。
。尽管我建议您不要使用
exec()
但出于安全原因,使用准备好的语句。确实要使用准备好的语句
$stmt=$db->prepare(“插入到$table(名称、数字、原因、危险)值(?、、?、?)”);$stmt->execute(数组($name、$eName、$causes、$danger));
谢谢解决了我的问题。