我试图通过这样做向用户附加Jake的'项目'
UPDATE login SET projects='CONCAT(projects, '$id,')' WHERE username='$name'
Run Code Online (Sandbox Code Playgroud)
但它没有任何作用.有什么好的MySql代码附加到特定行的列的想法?
前言.请完整地回答我的答案,而不仅仅是代码.
除了拼写错误CONACT,你需要删除引号和逗号.
在为函数使用引号时传递文字字符串.
UPDATE login SET projects='CONACT(projects, '$id,')' WHERE username='$name'
^ ^ ^
Run Code Online (Sandbox Code Playgroud)
您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在'1'附近使用正确的语法'''在第2行使用用户名='John''
将其修改为:
UPDATE login SET projects = CONCAT(projects, '$id') WHERE username='$name'
Run Code Online (Sandbox Code Playgroud)
或者$id没有引号,如果它确实是一个整数.
UPDATE login SET projects = CONCAT(projects, $id) WHERE username='$name'
Run Code Online (Sandbox Code Playgroud)
根据您通过连接使用查询的方式,将类似于此类和MySQLi方法:
$query = mysqli_query($connection,
"UPDATE login
SET projects = CONCAT(projects, '$id')
WHERE username='$name'")
or die(mysqli_error($connection));
Run Code Online (Sandbox Code Playgroud)
同时确保两个变量确实已设置并正确填充.
如果来自HTML表单,请确保它们具有名称属性并且方法正确.
即: <input type="text" name="username">
如果来自一个表格: $name = $_POST['username'];
另外,由于我们不知道您使用哪个MySQL API进行连接,或者您已经成功建立了与数据库的连接,这只是您所知道的,所以如果您这样做,那就太棒了.
如果没有,那么这可能意味着某处有错误,但你可能没有检查它们.
旁注:当你告诉我们"它不起作用"时,这对任何人都无济于事.
如果您要检查它们,我们需要知道确切的错误消息.
以下是您可以查看的一些链接,并根据您的MySQL API使用错误检查方法.
错误报告:http://php.net/manual/en/function.error-reporting.php
另请参阅此链接以选择您的MySQL API:
将错误报告添加到文件的顶部,这将有助于查找错误.
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
Run Code Online (Sandbox Code Playgroud)
旁注:错误报告应该只在暂存中完成,而不是生产.
我相信我已经给了你足够的信息.尝试不同的方法; 你不会破坏任何东西.
另请参阅这些链接 CONCAT
脚注:(测试代码)
如上所述和使用,以下工作完美无瑕mysqli_affected_rows().
<?php
$DB_HOST = 'xxx'; // Replace
$DB_USER = 'xxx'; // with
$DB_PASS = 'xxx'; // your
$DB_NAME = 'xxx'; // own
$db = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if($db->connect_errno > 0) {
die('Connection failed [' . $db->connect_error . ']');
}
$id = 1; // wrap in quotes if it's a string, like "string_1".
$name = "John"; // an example only
$query = mysqli_query($db,
"UPDATE login
SET projects = CONCAT(projects, '$id')
WHERE username='$name'")
or die(mysqli_error($db));
if(mysqli_affected_rows($db)){
echo "Successfully updated the database.";
}
else{
echo "Sorry, check your logs.";
}
Run Code Online (Sandbox Code Playgroud)
边注:
mysqli与准备好的陈述一起使用,或PDO与准备好的陈述一起使用,它们更安全.| 归档时间: |
|
| 查看次数: |
292 次 |
| 最近记录: |