您好我有这个代码不起作用。我一直在用它大约一个小时,似乎找不到任何错误,我不知道它是什么。也许有人可以帮助我。
插入脚本:
<?php error_reporting(E_ALL); ini_set('display_errors',1);
require('connect.php');
$sql = "INSERT INTO products (name, description, price, url, category, artwork) VALUES ('john', 'john', 'john', 'john', 'john', 'john')";
if ($link->query($sql)) {
echo "<script>
alert('Data was added.');
window.location.href='dashboard.php';
</script>";
}
else {
echo "<script>
alert('Data was not added.');
window.location.href='dashboard.php';
</script>";
}
?>
我正在尝试将数据添加到我的数据库中,但它不会添加我提供的数据。
这是我的连接脚本:
<?php
try {
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$link = new PDO("mysql:host=$dbhost;dbname=dbtesttest;",$dbuser,$dbpass);
} catch (PDOException $e) {
echo "Failed :" . $e->getMessage() . "\n";
}
?>
任何人都知道我做错了什么?除了在PHP中使用警报。 它没有给我任何错误,我有一个用实际属性制作的数据库。我需要帮助:(
答案 0 :(得分:-1)
我认为你应该使用$ link-&gt; exec($ sql);
答案 1 :(得分:-1)
让我们尝试简化问题。它看起来不像您正在返回数据库连接。为了让你能更好地理解,我们可以从同一个脚本中调用db(我们可以在你运行它之后将它移出来因为我们都喜欢重构而不是吗?)
try {
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$link = new PDO("mysql:host=$dbhost;dbname=dbtesttest;",$dbuser,$dbpass);
//在try块中将属性设置为连接
$link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "Failed :" . $e->getMessage() . "\n";
}
然后改变这一行
$link->query($sql)
到
$stmt = $link->prepare($sql);
$stmt->execute();
以上所有内容现在都应该放在你的try块中,插入应该可以工作,否则会返回更详细的错误。希望这会让你前进并帮助你绕过它。这个link有一个关于php / mysql CRUD操作的很好的入门。